Re: [PHP-DEV] Re: using VC++ to compile PHP extensions
Hi, if you want see this: http://www.zonaphp.com/index.php?modulo=articuloaccion=leerid=6 Is a introduction to make new extensions under Unix systems, it´s in spanish. - Original Message - From: J Smith [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, February 28, 2003 12:23 AM Subject: [PHP-DEV] Re: using VC++ to compile PHP extensions To add to that, I wrote up a short article yesterday that pretty much said the same thing, although it had a more UNIX-y focus. See http://www.tutorbuddy.com/software/phpcpp/phpcpp/ J Dave Viner wrote: Hi, I've just completed some local php extensions using VC++. Here are some notes that might help others when creating php extensions using VC++. snip dave -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] CVS Account Request: tacke
Developing the PHP runtime -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
Hi, Preface: This e-mail uses the distribution list (To and CC addresses) that the original poster used. I have moved everyone other than php-dev to Bcc so that this doesn't get perpetuated (I have no idea of the significance of the other addresses that were e-mailed, nor do I know Dave Hill's standing in the PHP community). In message [EMAIL PROTECTED] on Thu, Feb 27, 2003 at 02:52:28PM -0500, Dave Hill wrote: Proposed Patch to address 64 bit issues in PHP v4.3.1 Diff -u against php4-STABLE-200302241430 Also needed in 4.5.x and 5.x Addresses bugs 20994, 21002, 21822, 20268 There was some discussion on php-dev in November 2002 after I posted patches for bug #20268 (the earliest-numbered one in Dave's list). I chose to address this problem by creating OnUpdateLong (in addition to to existing OnUpdateInt) and sweep though the code changing the call where needed to match the stucture item. An equally valid fix would be to change all of those longs to ints. (a) I also chose to create OnUpdateLong (and this has been working well for me since 4.3.0pre2 using the patches I posted). Since I posted those patches, PHP has progressed and more of these problems have been introduced (bad) but at the same time some of the test cases have been revised to be more portable (good). (b) I found that sometimes ints needed to stay as ints and longs needed to stay as longs, which is why I chose to separate OnUpdateLong from OnUpdateInt. (c) In discussions on php-dev in November, the subject of the thread was 64-bit PHP 4.3 (extensive long vs int problems) http://marc.theaimsgroup.com/?t=10369029101r=1w=2 (d) Jason Greene responded as a person who was working on this problem. Disfavour of the OnUpdateLong solution was expressed (on- and maybe off-list, too). After performing that sweep, I found there was a small number of other errors of the int/long type that my compiler found that I corrected and are included here. There might be more mix and match problems, I only addressed the ones in the modules I have enabled. Deja vu! Now the reason I am responding and the reason I have BCCed the people in Dave's list was that I wanted to mention something about Zend. Really, this bug has its roots in Zend though it is manifested in PHP modules. Firstly, OnUpdateInt assigns to long storage but uses zend_atoi -- clearly there is confusion already. But the more disturbing thing that I found in November was the Zend documentation for zend_parse_parameters (a site of extensive long/int problems). That is why I have written this e-mail. I know nothing about the Zend engine but I will refer to this document: http://www.zend.com/apidoc/zend.arguments.retrieval.php It is entitled Accepting Arguments / Retrieving Arguments and describes the zend_parse_parameters function. It lists a type specifier: l - long But it does not list an int type. In the actual code, it is entirely long-based, not int-based, so there is clearly a mismatch. But moreover, there is no acknowledgement of the significance of int versus long. So it is not surprising that so many developers have made mistakes arising from this. Therefore, I thought that a proper solution to this problem would have to involve some consideration of the Zend API (or at least copious acknowledgments and warnings in its documentation). There is potentially a huge developer education problem, too. That is why I chose to add OnUpdateLong. And given the choice, I would have 'i - int' added to the type specifiers of zend_parse_parameters. Firstly, having the OnUpdateLong function allows quick rectification of these problems without having to try to stuff ints into longs or longs into ints -- we can instead just choose the one that fits the task. Moreover: by having two functions and two type specifiers (one for ints and one for longs), the situation would almost be self-documenting: developers that would usually neglect to consider the difference between int and long would at least see that there is a 'int' variant and a 'long' variant and therefore be prompted -- without extensive re-education -- to consider using the correct 'hole' for the 'peg'. If Zend is to settle on everything being longs or everything being ints, then people have to be stopped from reintroducing the 'wrong' type and people are going to have problems when the 'other' storage is the only one that appears to fit the job. Given the gradual divergence of Zend PHP from 64-bit cleanliness, I had thought these things to be fairly urgent and fundamental. In any case, the number of users and lines of code influenced by these issues has become increasingly visible in public over the last four months. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] package.xlm question
Hi, in my package.xml I have this: filelist dir role=src name=/ fileCREDITS/file fileMakefile.in/file is it possible that with older versions of the pear-command I have to put on each file entry the role? filelist dir role=src name=/ file role=srcCREDITS/file file role=srcMakefile.in/file Because I got a report from a user that he has problems installing the package. Localy if have no problems pear validate-package returns no error. bye, -- --- - Michael Bretterklieber- [EMAIL PROTECTED] JAWA Management Software GmbH - http://www.jawa.at Liebenauer Hauptstr. 200-- privat --- A-8041 GRAZ GSM: ++43-(0)676-93 96 698 Tel: ++43-(0)316-403274-12 E-mail: [EMAIL PROTECTED] Fax: ++43-(0)316-403274-10 http://www.bretterklieber.com --- - ...the number of UNIX installations has grown to 10, with more expected... - Dennis Ritchie and Ken Thompson, June 1972 -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] package.xlm question
Hi, forget this posting, I picked the wrong address from my addressbook - again gr, bye, Michael Bretterklieber wrote: Hi, in my package.xml I have this: filelist dir role=src name=/ fileCREDITS/file fileMakefile.in/file is it possible that with older versions of the pear-command I have to put on each file entry the role? filelist dir role=src name=/ file role=srcCREDITS/file file role=srcMakefile.in/file Because I got a report from a user that he has problems installing the package. Localy if have no problems pear validate-package returns no error. bye, -- --- - Michael Bretterklieber- [EMAIL PROTECTED] JAWA Management Software GmbH - http://www.jawa.at Liebenauer Hauptstr. 200-- privat --- A-8041 GRAZ GSM: ++43-(0)676-93 96 698 Tel: ++43-(0)316-403274-12 E-mail: [EMAIL PROTECTED] Fax: ++43-(0)316-403274-10 http://www.bretterklieber.com --- - ...the number of UNIX installations has grown to 10, with more expected... - Dennis Ritchie and Ken Thompson, June 1972 -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Weak references in PHP
To be able to implmenet interface of object-oriented database to PHP I need to have object cache which will map persistent object identifier (OPID) to loaded instance of the object. This cache should be weak, i.e. it should not prevent garbage collection from deallocating unused instances of peristent object (otherwise all database will be soon loaded in memory).. As far as I understand, PHP uses GC bases on refernce couters. Also I do not find something like weak reference in language manual. There are two other ways how to solve the problem without weak references: 1. Be able to check valye of reference counter (so I can check the it is equal to 1 and if so remove this object from object cache) 2. Be able to detect the moment when object is removed by GC (in this case I can make object cache invisible for GC and when object is deleted, it will be also unlinked frmo object cache). Can anybody tell me if such features are available in PHP (I failed to find them myself). Or may be there is some other way to solve the problem? Thanks in advance Konstantin -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CVS Account Request: tony2001
On 24 Feb 2003 08:21:17 - Antony Dovgal [EMAIL PROTECTED] wrote: Translating PEAR docs to Russian (main purpose, PEAR Russian docs team obviously need help). Translating PHP docs to Russian (possibly, if Russian docs team needs some help). Vitaliy Kravchenko(from Russian PEAR Docs team) has already said in pear-dev, that he needs my help. Please, give me access to peardoc. I can start translating it to Russian immediately. -- Wbr, Antony Dovgal aka tony2001 mailto:[EMAIL PROTECTED] http://phpclub.net --- Stand for something or you will fall for nothing. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Variables VS constantes
Hello, please forward user questions to the [EMAIL PROTECTED] mailinglist, this list is for development _OF_ PHP, not development _with_ PHP. Derick On Fri, 28 Feb 2003, Cranky wrote: Hello, I would like to know if in a config file for example, if it was better to use variables or constantes ? Is it a big difference of performance or in memory used ? And the same question about the translation of a site. I would like to translate my site in many langages. So I want to create one file per langage to put in the text translated in it. Is it better to use variables, associatives arrays or constantes ? Thanks a lot for your reply -- Stop mad cowboy disease! - Derick Rethans http://derickrethans.nl/ PHP Magazine - PHP Magazine for Professionals http://php-mag.net/ - -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Weak references in PHP
Can anybody tell me if such features are available in PHP (I failed to find them myself). Look at __destruct method for classes in ZE2. They wopn't tell you the reference count, but the do get called when the ref count goes to 0. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
Hi, The reason the zend_parse_parameters() API only exposes long is because the Zend zval (container which holds the engine values) only supports longs and not ints. So anything which touches scripting engine values should be using long. However, extensions which have INI parameters may want to use ints for their internal logic. The INI directive retrieval really doesn't have anything to do with zval's. So I think the fix of adding OnUpdateLong() is the correct fix. We could add some support in ZEND_DEBUG mode to catch some common errors. For example, we could make the zend_parse_parameters() function a macro and make sure that people are passing long's and not ints. I'm not really sure it's worth it though. Andi At 06:19 PM 2/28/2003 +0800, James Devenish wrote: Hi, Preface: This e-mail uses the distribution list (To and CC addresses) that the original poster used. I have moved everyone other than php-dev to Bcc so that this doesn't get perpetuated (I have no idea of the significance of the other addresses that were e-mailed, nor do I know Dave Hill's standing in the PHP community). In message [EMAIL PROTECTED] on Thu, Feb 27, 2003 at 02:52:28PM -0500, Dave Hill wrote: Proposed Patch to address 64 bit issues in PHP v4.3.1 Diff -u against php4-STABLE-200302241430 Also needed in 4.5.x and 5.x Addresses bugs 20994, 21002, 21822, 20268 There was some discussion on php-dev in November 2002 after I posted patches for bug #20268 (the earliest-numbered one in Dave's list). I chose to address this problem by creating OnUpdateLong (in addition to to existing OnUpdateInt) and sweep though the code changing the call where needed to match the stucture item. An equally valid fix would be to change all of those longs to ints. (a) I also chose to create OnUpdateLong (and this has been working well for me since 4.3.0pre2 using the patches I posted). Since I posted those patches, PHP has progressed and more of these problems have been introduced (bad) but at the same time some of the test cases have been revised to be more portable (good). (b) I found that sometimes ints needed to stay as ints and longs needed to stay as longs, which is why I chose to separate OnUpdateLong from OnUpdateInt. (c) In discussions on php-dev in November, the subject of the thread was 64-bit PHP 4.3 (extensive long vs int problems) http://marc.theaimsgroup.com/?t=10369029101r=1w=2 (d) Jason Greene responded as a person who was working on this problem. Disfavour of the OnUpdateLong solution was expressed (on- and maybe off-list, too). After performing that sweep, I found there was a small number of other errors of the int/long type that my compiler found that I corrected and are included here. There might be more mix and match problems, I only addressed the ones in the modules I have enabled. Deja vu! Now the reason I am responding and the reason I have BCCed the people in Dave's list was that I wanted to mention something about Zend. Really, this bug has its roots in Zend though it is manifested in PHP modules. Firstly, OnUpdateInt assigns to long storage but uses zend_atoi -- clearly there is confusion already. But the more disturbing thing that I found in November was the Zend documentation for zend_parse_parameters (a site of extensive long/int problems). That is why I have written this e-mail. I know nothing about the Zend engine but I will refer to this document: http://www.zend.com/apidoc/zend.arguments.retrieval.php It is entitled Accepting Arguments / Retrieving Arguments and describes the zend_parse_parameters function. It lists a type specifier: l - long But it does not list an int type. In the actual code, it is entirely long-based, not int-based, so there is clearly a mismatch. But moreover, there is no acknowledgement of the significance of int versus long. So it is not surprising that so many developers have made mistakes arising from this. Therefore, I thought that a proper solution to this problem would have to involve some consideration of the Zend API (or at least copious acknowledgments and warnings in its documentation). There is potentially a huge developer education problem, too. That is why I chose to add OnUpdateLong. And given the choice, I would have 'i - int' added to the type specifiers of zend_parse_parameters. Firstly, having the OnUpdateLong function allows quick rectification of these problems without having to try to stuff ints into longs or longs into ints -- we can instead just choose the one that fits the task. Moreover: by having two functions and two type specifiers (one for ints and one for longs), the situation would almost be self-documenting: developers that would usually neglect to consider the difference between int and long would at least see that there is a 'int' variant and a 'long' variant and therefore be prompted -- without extensive re-education -- to consider using the correct 'hole' for the 'peg'. If Zend is to settle on everything being longs or everything being
Re: [PHP-DEV] CVS Account Request: jay
Have you submitted a CVS account request? At 09:41 PM 2/27/2003 +, J Smith wrote: A few weeks ago, I kind of volunteered to maintain testing scripts for ZE2 on the ZE2 mailing list. (See the thread beginning at http://www.zend.com/lists/engine2/200302/msg3.html ) Just to make good on my volunteering, I guess I'll be needing a CVS account. I suppose I'd need access to php(4|5)/tests. I have a bunch of tests ready to go, and will be adding more as features get added, tweaked, etc. within ZE2. As for experience, I've submitted various patches to the project over the past year or so and written a few extensions that will eventually make it to PECL. I've also offered the use of a Solaris server to the group for debugging Solaris SPARC issues and can do some debugging on it myself if there's a need for it. J, aka darkpanda -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Weak references in PHP
Hi, I don't quite understand. If you are thinking of implementing something similar to JDO then your persistent object manager will only hold the objects which are retrieve by the script. At the end of the request it'll persist the changes and will free the objects. Why would you want them to be destroyed during the request? Andi At 02:39 PM 2/28/2003 +0300, Konstantin Knizhnik wrote: To be able to implmenet interface of object-oriented database to PHP I need to have object cache which will map persistent object identifier (OPID) to loaded instance of the object. This cache should be weak, i.e. it should not prevent garbage collection from deallocating unused instances of peristent object (otherwise all database will be soon loaded in memory).. As far as I understand, PHP uses GC bases on refernce couters. Also I do not find something like weak reference in language manual. There are two other ways how to solve the problem without weak references: 1. Be able to check valye of reference counter (so I can check the it is equal to 1 and if so remove this object from object cache) 2. Be able to detect the moment when object is removed by GC (in this case I can make object cache invisible for GC and when object is deleted, it will be also unlinked frmo object cache). Can anybody tell me if such features are available in PHP (I failed to find them myself). Or may be there is some other way to solve the problem? Thanks in advance Konstantin -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
So I think the fix of adding OnUpdateLong() is the correct fix. I was under the impression that OnUpdateInt was actually expecting a long. I remember changing some int's to long's to address 64 bit issues. Do I remember this incorrectly? - Sascha -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: [ZEND-ENGINE-CVS] Re: ZendEngine2 / ZEND_CHANGES
Harald Radi wrote: how is your book doing :) The deadline is approaching. Besides that, good ;-) -- Sebastian Bergmann http://sebastian-bergmann.de/ http://phpOpenTracker.de/ Did I help you? Consider a gift: http://wishlist.sebastian-bergmann.de/ -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
At 04:28 PM 2/28/2003 +0100, Sascha Schumann wrote: So I think the fix of adding OnUpdateLong() is the correct fix. I was under the impression that OnUpdateInt was actually expecting a long. I remember changing some int's to long's to address 64 bit issues. Do I remember this incorrectly? No, you are correct but misunderstood me. We should introduce OnUpdateLong() for ppl using longs and use OnUpdateInt() for ppl who want to use ints. Andi -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CVS Account Request: jay
Yep. Yesterday, through the form on the docs page. J Andi Gutmans wrote: Have you submitted a CVS account request? At 09:41 PM 2/27/2003 +, J Smith wrote: A few weeks ago, I kind of volunteered to maintain testing scripts for ZE2 on the ZE2 mailing list. (See the thread beginning at http://www.zend.com/lists/engine2/200302/msg3.html ) Just to make good on my volunteering, I guess I'll be needing a CVS account. I suppose I'd need access to php(4|5)/tests. I have a bunch of tests ready to go, and will be adding more as features get added, tweaked, etc. within ZE2. As for experience, I've submitted various patches to the project over the past year or so and written a few extensions that will eventually make it to PECL. I've also offered the use of a Solaris server to the group for debugging Solaris SPARC issues and can do some debugging on it myself if there's a need for it. J, aka darkpanda -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] CVS Account Request: linux521
Learning PHP Program! -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CVS Account Request: linux521
Learning PHP Program! You don't need a CVS account to do that. cheers, Mehdi -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
So I think the fix of adding OnUpdateLong() is the correct fix. I was under the impression that OnUpdateInt was actually expecting a long. I remember changing some int's to long's to address 64 bit issues. Do I remember this incorrectly? - Sascha Most, but not all of the calls to OnUpdateInt were long, and at least one of the mismatches was in main (three longs in a row followed by an int look at output_buffering in main.c). I personally don't care which way the team wants to fix this. My thought was the making the name say long was the best way to avoid silly errors in the future. If you want some consistency, then you could always retire OnUpdateInt and force them all to be long :-) It is not as if an extra few bytes would be noticed. Part of the problem is that many people still think an int and a long are interchangeable - and they actually are when the compiler knows what it is dealing with. The problem is when you start passing pointers around and casting things, and the compiler can't fix things up for you. This is of course compounded by the fact that on quite a few platforms they are the same size Dave Hill -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
No, you are correct but misunderstood me. We should introduce OnUpdateLong() for ppl using longs and use OnUpdateInt() for ppl who want to use ints. Well, and how are you planning to mitigate the BC issues? Remember that not all extension code is under our direct control. - Sascha -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
At 04:47 PM 2/28/2003 +0100, Sascha Schumann wrote: No, you are correct but misunderstood me. We should introduce OnUpdateLong() for ppl using longs and use OnUpdateInt() for ppl who want to use ints. Well, and how are you planning to mitigate the BC issues? Remember that not all extension code is under our direct control. I don't think there's much choice. Do you have a better idea? If so, please explain it. Andi -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
I think that simply adding OnUpdateLong and deprecating OnUpdateInt is fine while retaining its current semantics. I just don't see any value in changing the meaning of OnUpdateInt; at least that's how I interpreted Andi's message. - Sascha -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
At 04:50 PM 2/28/2003 +0100, Sascha Schumann wrote: I think that simply adding OnUpdateLong and deprecating OnUpdateInt is fine while retaining its current semantics. I just don't see any value in changing the meaning of OnUpdateInt; at least that's how I interpreted Andi's message. That's also an option but I think OnUpdateInt() is confusing and how do we stop ppl from using it in new extensions which who's commit messages aren't followed via php-cvs? Andi -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
That's also an option but I think OnUpdateInt() is confusing and how do we stop ppl from using it in new extensions which who's commit messages aren't followed via php-cvs? I volunteer to set up a cron job which greps for OnUpdateInt :-) The problem with _changing_ the existing semantics is that programmers will not notice that they need to adapt types from long to int. That leaves 64 bit platforms with a new set of problems, because the upper half of the long won't be initialized. - Sascha -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
On Fri, 28 Feb 2003, Andi Gutmans wrote: At 04:50 PM 2/28/2003 +0100, Sascha Schumann wrote: I think that simply adding OnUpdateLong and deprecating OnUpdateInt is fine while retaining its current semantics. I just don't see any value in changing the meaning of OnUpdateInt; at least that's how I interpreted Andi's message. That's also an option but I think OnUpdateInt() is confusing and how do we stop ppl from using it in new extensions which who's commit messages aren't followed via php-cvs? You can't really, but at least their extensions won't compile in future PHP versions and they will be forced to go and address the issue as opposed to continuing to propogate extensions that aren't 64-bit friendly. If we could force a compiler warning/error on a type mismatch to the OnUpdateInt/Long then that might be a solution too. -Rasmus -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Current HEAD segfaults with make test
PASS Methods via variable name, bug #20120 [tests/classes/bug20120.phpt] make: *** [test] Segmentation fault Is there a way to find out which test segfaults? Obviously the one after tests/classes/bug20120.phpt, but ... -- Sebastian Bergmann http://sebastian-bergmann.de/ http://phpOpenTracker.de/ Did I help you? Consider a gift: http://wishlist.sebastian-bergmann.de/ -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] - fix for 64 bit issues with OnUpdateInt
At 17:50 28/02/2003, Sascha Schumann wrote: I think that simply adding OnUpdateLong and deprecating OnUpdateInt is fine while retaining its current semantics. +1 Zeev -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] #php.bugs invite only?
#php.bugs seems to be invite only now. How do I go about getting myself invited? -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Current HEAD segfaults with make test
At 17:10 2/28/2003, you wrote: PASS Methods via variable name, bug #20120 [tests/classes/bug20120.phpt] make: *** [test] Segmentation fault Is there a way to find out which test segfaults? Obviously the one after tests/classes/bug20120.phpt, but ... Mine segfaults already on the third test (tests/run-test/test003.phpt), but the funny thing is, that making it execute as: make test TESTS=tests/run-test/test003.phpt does work. However - I made a typo like this: make test TESTS=tests/run-tests/test003.phpt (notice the 's'), and that segfaulted too. Looking at the backtrace this has to do with error logging/reporting. Backtrace (FreeBSD 4.7-STABLE) is attached. signature type=newbie %farewell; %job; %name; %phone; %pager; %mobile; %email.antispam; %url.mypage; %fancy.ascii; %disclaimer; %fancy.ascii; %quote.collection.standard.current; ?attach sameinfo.vcf ? /signatureCore was generated by `php'. Program terminated with signal 11, Segmentation fault. #0 0x81d0b88 in zend_hash_find (ht=0x82b6040, arKey=0x822586a error_reporting, nKeyLength=16, pData=0xbfbf4c7c) at /home/mdev/cvs/php5/Zend/zend_hash.c:869 869 HANDLE_NUMERIC(arKey, nKeyLength, zend_hash_index_find(ht, idx, pData)); #0 0x81d0b88 in zend_hash_find (ht=0x82b6040, arKey=0x822586a error_reporting, nKeyLength=16, pData=0xbfbf4c7c) at /home/mdev/cvs/php5/Zend/zend_hash.c:869 tmp = 0x822586a error_reporting h = 3216985304 nIndex = 136765888 p = (Bucket *) 0x8257484 #1 0x81d890e in zend_alter_ini_entry (name=0x822586a error_reporting, name_length=16, new_value=0x8225868 0, new_value_length=1, modify_type=1, stage=16) at /home/mdev/cvs/php5/Zend/zend_ini.c:201 ini_entry = (zend_ini_entry *) 0x834ebb0 duplicate = 0x826dfc4 #2 0x81e8a53 in zend_begin_silence_handler (execute_data=0xbfbf90a4, op_array=0x830e200) at /home/mdev/cvs/php5/Zend/zend_execute.c:3812 No locals. #3 0x81df667 in execute (op_array=0x830e200) at /home/mdev/cvs/php5/Zend/zend_execute.c:1231 execute_data = {opline = 0x831f708, function_state = { function_symbol_table = 0x833293c, function = 0x830e200, reserved = { 0xbfbf90f0, 0x81e9f58, 0x8332a48, 0x81e1dc8}}, fbc = 0x0, fbc_constructor = 0x81c6cfd, op_array = 0x830e200, object = 0x0, Ts = 0xbfbf4cd8, original_in_execution = 1 '\001', calling_scope = 0x0, prev_execute_data = 0xbfbfe474} #4 0x81e4c94 in zend_do_fcall_common_helper (execute_data=0xbfbfe474, op_array=0x827d09c) at /home/mdev/cvs/php5/Zend/zend_execute.c:2638 calling_symbol_table = (HashTable *) 0x826e090 original_return_value = (zval **) 0xbfbfe4ec current_scope = (zend_class_entry *) 0x0 current_this = (zval *) 0x0 return_value_used = 1 active_namespace = (zend_namespace *) 0x826ddcc #5 0x81e50d3 in zend_do_fcall_by_name_handler (execute_data=0xbfbfe474, op_array=0x827d09c) at /home/mdev/cvs/php5/Zend/zend_execute.c:2706 No locals. #6 0x81df667 in execute (op_array=0x827d09c) at /home/mdev/cvs/php5/Zend/zend_execute.c:1231 execute_data = {opline = 0x828f870, function_state = { function_symbol_table = 0x832a7b0, function = 0x830e200, reserved = { 0xbfbfe4b0, 0x81a77f9, 0x826df68, 0xbfbffab8}}, fbc = 0x830e200, fbc_constructor = 0x81a77d0, op_array = 0x827d09c, object = 0x0, Ts = 0xbfbf9178, original_in_execution = 0 '\000', calling_scope = 0x0, prev_execute_data = 0x0} #7 0x81c98c4 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /home/mdev/cvs/php5/Zend/zend.c:985 files = 0xbfbfe51c i = 1 file_handle = (zend_file_handle *) 0xbfbffab8 orig_op_array = (zend_op_array *) 0x0 local_retval = (zval *) 0x0 #8 0x8187fc3 in php_execute_script (primary_file=0xbfbffab8) at /home/mdev/cvs/php5/main/main.c:1736 orig_bailout = {{_jb = {136235057, 136672388, -1077937708, -1077937440, -1077937348, -1077937312, 4735, 0, 0, 0, 0, 0}}} orig_bailout_set = 1 '\001' prepend_file_p = (zend_file_handle *) 0x0 append_file_p = (zend_file_handle *) 0x0 prepend_file = {type = 7 '\a', filename = 0x1 Address 0x1 out of bounds, opened_path = 0x8304560 STDIN, handle = {fd = 6, fp = 0x6, stream = {handle = 0x6, reader = 0x8257484 __DTOR_END__+4, closer = 0, interactive = 0}}, free_filename = 0 '\000'} append_file = {type = 7 '\a', filename = 0x1 Address 0x1 out of bounds, opened_path = 0x8304570 STDOUT, handle = {fd = 7, fp = 0x7, stream = { handle = 0x7, reader = 0x8257484 __DTOR_END__+4, closer = 0x1, interactive = 0}}, free_filename = 1 '\001'} old_cwd = 0xbfbfe528 old_primary_file_path = 0x0 retval = 0 #9 0x81ed347 in main (argc=8, argv=0xbfbffb3c) at /home/mdev/cvs/php5/sapi/cli/php_cli.c:885 orig_bailout = {{_jb = {0
Re: [PHP-DEV] #php.bugs invite only?
On February 28, 2003 11:50 am, George Schlossnagle wrote: #php.bugs seems to be invite only now. How do I go about getting myself invited? It would appear someone had accidentaly set the channel to invite only, it is fixed now. Ilia -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re[2]: [PHP-DEV] Weak references in PHP
Hello Andi, The problem is that script can fetch very large number of objects and all of them doesn't fit in the memory. Lets say we have very large list of objects (several millions objects or more). And our script traverse the list and fetch objects one by one and do some calculations (for example calculates total sum). So at each moment of time only one persistent object is actually needed. But without weak references we will have to keep all these millions of objects in memory. Also performance of OODBBS greatly depends on efficient caching of objects. If we throw away all objects after each request and has to reload them from the server for each request, then performance will we awful. It is very significant to be able to cache most frequently used objects. LRU or some other discipline can be used for it. But any not depending from the discipline we use we need some mechanism which allows to map OPIDs to instances and do not prevent GC from collecting the objects. That is why almost all languages with implicit memory deallocation have some kind of weak references. And I was wondered when do not find such facility in PHP. Using __destruct method (thanks to George) it may be possible to implement what I need, but only if object cache is implemented in C (and so is not visible for PHP garbage collector). So no pure PHP solution exits. Unfortunately I didn't fins any reference to __destruct method in PHP manual and do not understand how it works. If I just declare __destruct method in class, it is not invoked when object is destructed. Friday, February 28, 2003, 6:29:21 PM, you wrote: AG Hi, AG I don't quite understand. If you are thinking of implementing something AG similar to JDO then your persistent object manager will only hold the AG objects which are retrieve by the script. At the end of the request it'll AG persist the changes and will free the objects. Why would you want them to AG be destroyed during the request? AG Andi AG At 02:39 PM 2/28/2003 +0300, Konstantin Knizhnik wrote: To be able to implmenet interface of object-oriented database to PHP I need to have object cache which will map persistent object identifier (OPID) to loaded instance of the object. This cache should be weak, i.e. it should not prevent garbage collection from deallocating unused instances of peristent object (otherwise all database will be soon loaded in memory).. As far as I understand, PHP uses GC bases on refernce couters. Also I do not find something like weak reference in language manual. There are two other ways how to solve the problem without weak references: 1. Be able to check valye of reference counter (so I can check the it is equal to 1 and if so remove this object from object cache) 2. Be able to detect the moment when object is removed by GC (in this case I can make object cache invisible for GC and when object is deleted, it will be also unlinked frmo object cache). Can anybody tell me if such features are available in PHP (I failed to find them myself). Or may be there is some other way to solve the problem? Thanks in advance Konstantin -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php -- Best regards, Konstantinmailto:[EMAIL PROTECTED] -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re[2]: [PHP-DEV] Weak references in PHP
Hello George, Friday, February 28, 2003, 5:46:18 PM, you wrote: Can anybody tell me if such features are available in PHP (I failed to find them myself). GS Look at __destruct method for classes in ZE2. They wopn't tell you the GS reference count, but the do get called when the ref count goes to 0. Sorry, I am dummy in PHP world:( Can you explain more precisely what is ZE2 and where should I look for __destruct method. I didn't find any reference to such method neither in PHP manual neither in PHP sources i have downloaded. -- Best regards, Konstantinmailto:[EMAIL PROTECTED] -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: Re[2]: [PHP-DEV] Weak references in PHP
Using __destruct method (thanks to George) it may be possible to implement what I need, but only if object cache is implemented in C (and so is not visible for PHP garbage collector). So no pure PHP solution exits. Unfortunately I didn't fins any reference to __destruct method in PHP manual and do not understand how it works. If I just declare __destruct method in class, it is not invoked when object is destructed. It's in ZE2 have a look at Zend/ZEND_CHANGES in the source tree for details (you'll need to be running php5/HEAD). And it's a userland method, so the cache can be implemented in PHP. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] #php.bugs invite only?
At 12:12 PM 2/28/2003 -0500, Ilia A. wrote: On February 28, 2003 11:50 am, George Schlossnagle wrote: #php.bugs seems to be invite only now. How do I go about getting myself invited? It would appear someone had accidentaly set the channel to invite only, it is fixed now. I mailed Jani with the same question :) Andi -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: Re[2]: [PHP-DEV] Weak references in PHP
ZE2 == Zend Engine 2, which will be replacing the current Zend Engine in PHP 5. Amoung other things, one of it's main features is a more roboust OOP framework, which includes class destructors. J Konstantin Knizhnik wrote: Hello George, Friday, February 28, 2003, 5:46:18 PM, you wrote: Can anybody tell me if such features are available in PHP (I failed to find them myself). GS Look at __destruct method for classes in ZE2. They wopn't tell you the GS reference count, but the do get called when the ref count goes to 0. Sorry, I am dummy in PHP world:( Can you explain more precisely what is ZE2 and where should I look for __destruct method. I didn't find any reference to such method neither in PHP manual neither in PHP sources i have downloaded. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] ZE2 constructors
Hi Zeev, according to the plans the following test file should PASS: --TEST-- The new constructor/destructor is called --SKIPIF-- ?php if (version_compare(zend_version(), '2.0.0-dev', '')) die('skip ZendEngine 2 needed'); ? --FILE-- ?php class early { function early() { echo early::early\n; } function __construct() { echo early::__construct\n; } function __destruct() { echo early::__destruct\n; } } class late { function __construct() { echo late::__construct\n; } function late() { echo late::late\n; } function __destruct() { echo late::__destruct\n; } } $t = new early(); $t-early(); unset($t); $t = new late(); $t-late(); //unset($t); delay to end of script echo Done\n; ? --EXPECTF-- early::__construct early::early early::__destruct late::__construct late::late Done late::__destruct # However it fails and this patch is needed which also fixees the last final problem mentioned already: # Index: Zend/zend_compile.c === RCS file: /repository/ZendEngine2/zend_compile.c,v retrieving revision 1.375 diff -u -r1.375 zend_compile.c --- Zend/zend_compile.c 25 Feb 2003 10:03:26 - 1.375 +++ Zend/zend_compile.c 28 Feb 2003 19:14:52 - @@ -916,6 +916,9 @@ ((current_access_type-u.constant.value.lval ZEND_ACC_PPP_MASK) != (new_modifier-u.constant.value.lval ZEND_ACC_PPP_MASK))) { zend_error(E_COMPILE_ERROR, Multiple access type modifiers are not allowed); } + if (((current_access_type-u.constant.value.lval | new_modifier-u.constant.value.lval) (ZEND_ACC_ABSTRACT | ZEND_ACC_FINAL)) == (ZEND_ACC_ABSTRACT | ZEND_ACC_FINAL)) { + zend_error(E_COMPILE_ERROR, Cannot use the final modifier on an abstract class member); + } if (((current_access_type-u.constant.value.lval | new_modifier-u.constant.value.lval) (ZEND_ACC_PRIVATE | ZEND_ACC_FINAL)) == (ZEND_ACC_PRIVATE | ZEND_ACC_FINAL)) { zend_error(E_COMPILE_ERROR, Cannot use the final modifier on a private class member); } @@ -974,7 +977,7 @@ fn_flags |= ZEND_ACC_PUBLIC; } - if ((short_class_name_length == name_len) (!memcmp(short_class_name, name, name_len))) { + if ((short_class_name_length == name_len) (!memcmp(short_class_name, name, name_len)) !CG(active_class_entry)-constructor) { CG(active_class_entry)-constructor = (zend_function *) CG(active_op_array); } else if ((function_name-u.constant.value.str.len == sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) (!memcmp(function_name-u.constant.value.str.val, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME { CG(active_class_entry)-constructor = (zend_function *) CG(active_op_array); # regards marcus -- -- Marcus Börger - Looking for all sorts of freelance work - just ask... Did i help you? Consider a gift: http://www.amazon.de/exec/obidos/wishlist/ho722v0rg1u0 --
Re[2]: [PHP-DEV] Weak references in PHP
At 08:00 PM 2/28/2003 +0300, Konstantin Knizhnik wrote: Hello Andi, The problem is that script can fetch very large number of objects and all of them doesn't fit in the memory. Lets say we have very large list of objects (several millions objects or more). And our script traverse the list and fetch objects one by one and do some calculations (for example calculates total sum). So at each moment of time only one persistent object is actually needed. But without weak references we will have to keep all these millions of objects in memory. If you need to go over a list of million objects you are doing something wrong :) Also performance of OODBBS greatly depends on efficient caching of objects. If we throw away all objects after each request and has to reload them from the server for each request, then performance will we awful. It is very significant to be able to cache most frequently used objects. LRU or some other discipline can be used for it. But any not depending from the discipline we use we need some mechanism which allows to map OPIDs to instances and do not prevent GC from collecting the objects. I disagree. JDO performs well and doesn't cache the objects as usually pessimistic locking is used with it. Of course, if you want to use optimistic locking and the nature of your application allows you to do so efficiently the caching might make sense (or it's mainly a read-only app). That is why almost all languages with implicit memory deallocation have some kind of weak references. And I was wondered when do not find such facility in PHP. Using __destruct method (thanks to George) it may be possible to implement what I need, but only if object cache is implemented in C (and so is not visible for PHP garbage collector). So no pure PHP solution exits. Unfortunately I didn't fins any reference to __destruct method in PHP manual and do not understand how it works. If I just declare __destruct method in class, it is not invoked when object is destructed. I don't quite understand why you need __destruct() as other systems in Java don't use this but I might be completely misunderstanding what you want to do. Yes, you'll need to do this with a C extension. Anyway, good luck. I hope the Engine 2 solves some of your problems (such as object handles which allow you to always access the same DB object). Andi -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] PHP5 compilation broken? Patch
Howdy-- Tried to compile today's CVS of PHP5 but I get a compilation error in main/network.c. Here's a patch that (I think) should take care of the problem: Index: main/network.c === RCS file: /repository/php4/main/network.c,v retrieving revision 1.95 diff -u -r1.95 network.c --- main/network.c 28 Feb 2003 21:03:36 - 1.95 +++ main/network.c 1 Mar 2003 04:31:37 - @@ -509,7 +509,7 @@ break; -#if HAVE_IPV6 +#if HAVE_IPV6 HAVE_INET_NTOP case AF_INET6: buf = (char*)inet_ntop(sa-sa_family, ((struct sockaddr_in6*)sa)-sin6_addr, (char *)abuf, sizeof(abuf)); if (buf) { Hope I got the right patch format. Marco -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] PHP5 compilation broken? Patch
Never mind... I had updated the wrong head :( Sorry! Mt. On Fri, 2003-02-28 at 23:33, Marco Tabini wrote: Howdy-- Tried to compile today's CVS of PHP5 but I get a compilation error in main/network.c. Here's a patch that (I think) should take care of the problem: Index: main/network.c === RCS file: /repository/php4/main/network.c,v retrieving revision 1.95 diff -u -r1.95 network.c --- main/network.c28 Feb 2003 21:03:36 - 1.95 +++ main/network.c1 Mar 2003 04:31:37 - @@ -509,7 +509,7 @@ break; -#if HAVE_IPV6 +#if HAVE_IPV6 HAVE_INET_NTOP case AF_INET6: buf = (char*)inet_ntop(sa-sa_family, ((struct sockaddr_in6*)sa)-sin6_addr, (char *)abuf, sizeof(abuf)); if (buf) { Hope I got the right patch format. Marco -- Marco Tabini President Marco Tabini Associates, Inc. 28 Bombay Ave. Toronto, ON M3H 1B7 Canada Phone: (416) 630-6202 Fax: (416) 630-5057 Weblog: http://blogs.phparch.com -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Variables VS constantes
Hello, I would like to know if in a config file for example, if it was better to use variables or constantes ? Is it a big difference of performance or in memory used ? And the same question about the translation of a site. I would like to translate my site in many langages. So I want to create one file per langage to put in the text translated in it. Is it better to use variables, associatives arrays or constantes ? Thanks a lot for your reply -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: [PHP] JP Graph
Sounds like a web server configuration problem. If you are using apache make sure your httpd.conf is configured to bind to your external IP address (the default). Jason On Thu, 2003-02-27 at 21:17, K wrote: Hi all, I'm using JPGraph on a localhost for a website opened via a host redirect. My problem is that nobody can see the graphs but me ('cause I'm on localhost). Any clues? Thx. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php