[PHP-DEV] CVS Account Request: yincheng
Translating the documentation I want to translating the documentation to Simple Chines. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: Introducing EXCPLICIT
j, nevermind, you're not the first one who says stop using php if you want oo and strong types aso aso. my decision is not only reasoned by your reply. sorry for dropping just a single line - i had to leave my desk regards, ilker J Smith [EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... I wouldn't take my opinion as law, as I'm not part of the core PHP Group or anything, so I don't speak for anyone but myself. All I'm saying is that I seem to remember this issue being brought up before, and the result was that PHP is not a strong typed language, and probably won't become one any time soon. A couple of weeks ago the discussion kind of stirred up again with the idea of string types. You can sort of do your own data type checks now using is_int(), is_array(), etc., which although falls short of true strong typing, is better than nothing. If you want to move to C#, super. Use the tool that fits the job. But I hope to hell you aren't doing it just 'cause I sent you a reply on a newsgroup that you didn't like. Personally, I wouldn't mind a slightly stronger typed PHP (at least for function arguments) as long as BC and portability were maintained and it was totally optional. J Ilker Cetinkaya wrote: thank you for your reply, i'll change to c# as soon as i've finished my current projects. regards, ilker -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] [PATCH] New function implode_multi
Hi there, while creating some stuff in PHP, I needed the PHP function implode() work like Perl function join, so that the first argument of the function is glue and an unlimited list of other arguments is made of arrays and strings. So I made a new function called implode_multi (with an alias join_multi). The code works fine and correctly, here is an example: ? $fruits = array('banana', 'orange', 'apple'); $vegetables = array('carrot', 'cabbage', 'cucumber'); $favorite_food = 'icecream'; $all_day_food = implode_multi(', ', $fruits, $vegetables, $favorite_food); // ... = banana, orange, apple, carrot, cabbage, cucumber, icecream ? -- Bye ... C. McCohy The killings will not stop until you Karel Roden --- diff -aur php-4.2.1.orig/ext/standard/basic_functions.c php-4.2.1/ext/standard/basic_functions.c --- php-4.2.1.orig/ext/standard/basic_functions.c Sat May 11 21:23:05 2002 +++ php-4.2.1/ext/standard/basic_functions.cFri Jun 7 09:30:40 2002 -339,6 +339,7 PHP_FE(similar_text,third_arg_force_ref) PHP_FE(explode, NULL) PHP_FE(implode, NULL) + PHP_FE(implode_multi, + NULL) PHP_FE(setlocale, NULL) PHP_FE(localeconv, NULL) -576,6 +577,7 PHP_FE(split, NULL) PHP_FE(spliti, NULL) PHP_FALIAS(join,implode, NULL) + PHP_FALIAS(join_multi, implode_multi, + NULL) PHP_FE(sql_regcase, NULL) /* functions from dl.c */ diff -aur php-4.2.1.orig/ext/standard/php_string.h php-4.2.1/ext/standard/php_string.h --- php-4.2.1.orig/ext/standard/php_string.hThu Feb 28 09:26:48 2002 +++ php-4.2.1/ext/standard/php_string.h Thu Jun 6 15:55:59 2002 -37,6 +37,7 PHP_FUNCTION(wordwrap); PHP_FUNCTION(explode); PHP_FUNCTION(implode); +PHP_FUNCTION(implode_multi); PHP_FUNCTION(strtok); PHP_FUNCTION(strtoupper); PHP_FUNCTION(strtolower); diff -aur php-4.2.1.orig/ext/standard/string.c php-4.2.1/ext/standard/string.c --- php-4.2.1.orig/ext/standard/string.cThu Apr 25 16:52:58 2002 +++ php-4.2.1/ext/standard/string.c Fri Jun 7 09:43:13 2002 -874,6 +874,111 } /* }}} */ +/* {{{ proto string join_multi(string glue, mixed var [, mixed var [, ...]]) + An alias for implode_multi */ +/* }}} */ + +/* {{{ proto string implode_multi(string glue, mixed var [, mixed var [, ...]]) + Joins elements with a string, if element is an array, joins its pieces */ +PHP_FUNCTION(implode_multi) +{ + zval***args; + int argc; + zval*delim; + char*result_str; + int i, len = 0, target = 0; + + argc=ZEND_NUM_ARGS(); + if (argc 2) { + WRONG_PARAM_COUNT; + } + + args = (zval ***) emalloc(argc * sizeof(zval **)); + + if (zend_get_parameters_array_ex(argc, args) == FAILURE) { + efree(args); + WRONG_PARAM_COUNT; + } + + if (Z_TYPE_PP(args[0]) != IS_STRING) { + php_error(E_WARNING, First argument to %s() must be string, + get_active_function_name(TSRMLS_C)); + return; + } + + convert_to_string_ex(args[0]); + delim = *args[0]; + + for (i = 1; i argc; i++) { + zval *actarg; + actarg = *args[i]; + + if (Z_TYPE_PP(args[i]) == IS_ARRAY) { + int count = 0; + HashPosition pos; + zval **tmp; + + zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(actarg), pos); + while (zend_hash_get_current_data_ex(Z_ARRVAL_P(actarg), (void +**) tmp, pos) == SUCCESS) { + convert_to_string_ex(tmp); + len += Z_STRLEN_PP(tmp); + count++; +
Re: [PHP-DEV] [PATCH] New function implode_multi
Hi, On Fri, Jun 07, 2002 at 10:49:21AM +0200, C. McCohy wrote : ? $fruits = array('banana', 'orange', 'apple'); $vegetables = array('carrot', 'cabbage', 'cucumber'); $favorite_food = 'icecream'; $all_day_food = implode_multi(', ', $fruits, $vegetables, $favorite_food); // ... = banana, orange, apple, carrot, cabbage, cucumber, icecream ? Do we really need a new function just to save a few keystrokes? Using array_merge() can you achive the same thing: ? $fruits = array('banana', 'orange', 'apple'); $vegetables = array('carrot', 'cabbage', 'cucumber'); favourite_food = 'icecream'; $foo = implode(', ', array_merge($fruits, $vegetables, array($favourite_food))); var_dump($foo); ? $ php test2.php string(58) banana, orange, apple, carrot, cabbage, cucumber, icecream - Markus -- GnuPG Key: http://guru.josefine.at/~mfischer/C2272BD0.asc -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] New function implode_multi
On Fri, Jun 07, 2002 at 11:02:45AM +0200, Markus Fischer wrote : Hi, On Fri, Jun 07, 2002 at 10:49:21AM +0200, C. McCohy wrote : ? $fruits = array('banana', 'orange', 'apple'); $vegetables = array('carrot', 'cabbage', 'cucumber'); $favorite_food = 'icecream'; $all_day_food = implode_multi(', ', $fruits, $vegetables, $favorite_food); // ... = banana, orange, apple, carrot, cabbage, cucumber, icecream ? Do we really need a new function just to save a few keystrokes? OTOH, I can't see a real BC problem if we would enhance/replace the current implode with your function. Does someone else? - Markus -- GnuPG Key: http://guru.josefine.at/~mfischer/C2272BD0.asc -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Re: [Zend Engine 2] PHP in the future
Am Donnerstag, 6. Juni 2002 19:59 schrieb Dan Hardiker: I sit in many PHP channels (IRC), and observe many class-based PHP networks (php-classes.org is one I monitor closely) and can say definatly that the majority of PHP users want *more* OO capabilities in PHP. From a marketing POV, what most people want is NOT more OOP in PHP, but actually a hostable Java. PHP is everywhere and pretty much free, when it comes to webspace hosting. Java usually isn't, because it has certain requirements for its execution environment that cannot be met in cheap hosting environments. So when users ask for more OO in PHP, they usually want Java and Java capabilities for the price of their current PHP site, and a migration path towards this. Since there is no such thing, they end up trying to turn PHP into Java. Kristian -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Registering classes in PHP extension
Hi. Any manual about registering classes in PHP extension? I found that the function zend_register_internal_class can do that. And I read some code in ext/ that contaings that function, but I can hardly understand that code. Any manual or tutorial about that topic? Thanks. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Re: [Zend Engine 2] PHP in the future
Am Donnerstag, 6. Juni 2002 19:59 schrieb Dan Hardiker: I sit in many PHP channels (IRC), and observe many class-based PHP networks (php-classes.org is one I monitor closely) and can say definatly that the majority of PHP users want *more* OO capabilities in PHP. [..] So when users ask for more OO in PHP, they usually want Java and Java capabilities for the price of their current PHP site, and a migration path towards this. Since there is no such thing, they end up trying to turn PHP into Java. I disagree *very* strongly with this statement. When people ask for more OO they want more OO! Its like saying that if people wanted VC++ to be more OOed then they would just be wanting Delphi... which is just untrue. The masses are asking for more flexability and expanded capabilities - not to turn PHP into anything its not already. PHP is a partially OOed language currently, extending it into other OO areas (public/private/protected methods variables) is not altering the language structure, aim or purpose. What the masses are *not* asking for is for PHP to do things the java way. That has never been suggested or hinted at... anyone wanting this can go use Java. I dont want to use java for my current projects - there is JSP but it doesnt fit for the majority of the projects I do (right tool for the right job). Giving PHP extra OOP capabilities would extend what I can do with PHP and where I can use it. This isnt about cost of using PHP over Java its about the right tool for the right job to complete at the right speed. -- Dan Hardiker [[EMAIL PROTECTED]] ADAM Software Systems Engineer First Creative Ltd -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] DOMXML Function consistency
A bug report or two have been made regarding function names in attribute nodes. Taking a look, nodes have the following access functions: node_name node_type node_value etc. However attribute nodes have the following access functions: name value specified I am thinking that to make it more consistent, we should change the attribute functions to attr_name or node_name attr_value or node_value attr_specified or node_specified I'd vote for the latter series since the programmer already knows they're attributes. Renaming will reduce the WTF factor. We can leave the aliases to the old functions for a while to maintain BC. WISH: I wish there was a Zend Function for marking a function alias as deprecated, I.e. so that a warning message is displayed if the function is used after being marked deprecated. A way to display the replacement function in the warning message would be nice too. Joseph -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] DOMXML Function consistency
The DOM level 1 W3C's recommendation specifies node_name, node_type and node_value, I'd like the DOMextension to map the W3C spec as close as possible. I'd even recommend not implementing the suggested functions as alises since that would encorage non-standard DOM applications. - Original Message - From: Joseph Tate [EMAIL PROTECTED] To: Php-Dev List [EMAIL PROTECTED] Sent: Friday, June 07, 2002 11:16 AM Subject: [PHP-DEV] DOMXML Function consistency A bug report or two have been made regarding function names in attribute nodes. Taking a look, nodes have the following access functions: node_name node_type node_value etc. However attribute nodes have the following access functions: name value specified I am thinking that to make it more consistent, we should change the attribute functions to attr_name or node_name attr_value or node_value attr_specified or node_specified I'd vote for the latter series since the programmer already knows they're attributes. Renaming will reduce the WTF factor. We can leave the aliases to the old functions for a while to maintain BC. WISH: I wish there was a Zend Function for marking a function alias as deprecated, I.e. so that a warning message is displayed if the function is used after being marked deprecated. A way to display the replacement function in the warning message would be nice too. Joseph -- 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] DOMXML Function consistency
Hi I have no problem with that, but the old functions should not be deprecated, it's the W3C-Standard way. And if i understood it correctly, both methods (name and nodeName) can be used for the same... chregu On Fri, 7 Jun 2002, Joseph Tate wrote: A bug report or two have been made regarding function names in attribute nodes. Taking a look, nodes have the following access functions: node_name node_type node_value etc. However attribute nodes have the following access functions: name value specified I am thinking that to make it more consistent, we should change the attribute functions to attr_name or node_name attr_value or node_value attr_specified or node_specified I'd vote for the latter series since the programmer already knows they're attributes. Renaming will reduce the WTF factor. We can leave the aliases to the old functions for a while to maintain BC. WISH: I wish there was a Zend Function for marking a function alias as deprecated, I.e. so that a warning message is displayed if the function is used after being marked deprecated. A way to display the replacement function in the warning message would be nice too. Joseph -- nam...christian stockeradr...bremgartnerstr. 66, ch-8003 zurich pho...+41 1 451 6021 www...http://phant.ch/chregu mob...+41 76 561 8860 [EMAIL PROTECTED] wor...+41 1 240 5670 gpg...0x5CE1DECB -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] DOMXML Function consistency
On Fri, 7 Jun 2002, Garland foster wrote: The DOM level 1 W3C's recommendation specifies node_name, node_type and node_value, I'd like the DOMextension to map the W3C spec as close as possible. but it's at least a DOM level 2 W3C recommendation: http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-637646024 (except type) I'd even recommend not implementing the suggested functions as alises since that would encorage non-standard DOM applications. keeping BC for some time is not that bad :) chregu - Original Message - From: Joseph Tate [EMAIL PROTECTED] To: Php-Dev List [EMAIL PROTECTED] Sent: Friday, June 07, 2002 11:16 AM Subject: [PHP-DEV] DOMXML Function consistency A bug report or two have been made regarding function names in attribute nodes. Taking a look, nodes have the following access functions: node_name node_type node_value etc. However attribute nodes have the following access functions: name value specified I am thinking that to make it more consistent, we should change the attribute functions to attr_name or node_name attr_value or node_value attr_specified or node_specified I'd vote for the latter series since the programmer already knows they're attributes. Renaming will reduce the WTF factor. We can leave the aliases to the old functions for a while to maintain BC. WISH: I wish there was a Zend Function for marking a function alias as deprecated, I.e. so that a warning message is displayed if the function is used after being marked deprecated. A way to display the replacement function in the warning message would be nice too. Joseph -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php -- nam...christian stockeradr...bremgartnerstr. 66, ch-8003 zurich pho...+41 1 451 6021 www...http://phant.ch/chregu mob...+41 76 561 8860 [EMAIL PROTECTED] wor...+41 1 240 5670 gpg...0x5CE1DECB -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Re: [Zend Engine 2] PHP in the future
--- Dan Hardiker [EMAIL PROTECTED] wrote: Am Donnerstag, 6. Juni 2002 19:59 schrieb Dan Hardiker: I sit in many PHP channels (IRC), and observe many class-based PHP networks (php-classes.org is one I monitor closely) and can say definatly that the majority of PHP users want *more* OO capabilities in PHP. [..] So when users ask for more OO in PHP, they usually want Java and Java capabilities for the price of their current PHP site, and a migration path towards this. Since there is no such thing, they end up trying to turn PHP into Java. I disagree *very* strongly with this statement. When people ask for more OO they want more OO! Its like saying that if people wanted VC++ to be more OOed then they would just be wanting Delphi... which is just untrue. The masses are asking for more flexability and expanded capabilities - not to turn PHP into anything its not already. PHP is a partially OOed language currently, extending it into other OO areas (public/private/protected methods variables) is not altering the language structure, aim or purpose. What the masses are *not* asking for is for PHP to do things the java way. That has never been suggested or hinted at... anyone wanting this can go use Java. I dont want to use java for my current projects - there is JSP but it doesnt fit for the majority of the projects I do (right tool for the right job). Giving PHP extra OOP capabilities would extend what I can do with PHP and where I can use it. This isnt about cost of using PHP over Java its about the right tool for the right job to complete at the right speed. Ex-friggin-actly, i couldn't agree with this more. - brad __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: [Zend Engine 2] Re: [PHP-DEV] Re: [Zend Engine 2] PHP in thefuture
IMO, one of the big reasons for having a powerful OO mode, and continually evolving php to have a bigger target than just a web programming language, is code re-usability. You can design a nice consistent Framework, and easily rollout web, gui, and back end applications all using the same framework. -Jason On Fri, 2002-06-07 at 07:04, Kristian Koehntopp wrote: Am Donnerstag, 6. Juni 2002 19:59 schrieb Dan Hardiker: I sit in many PHP channels (IRC), and observe many class-based PHP networks (php-classes.org is one I monitor closely) and can say definatly that the majority of PHP users want *more* OO capabilities in PHP. From a marketing POV, what most people want is NOT more OOP in PHP, but actually a hostable Java. PHP is everywhere and pretty much free, when it comes to webspace hosting. Java usually isn't, because it has certain requirements for its execution environment that cannot be met in cheap hosting environments. So when users ask for more OO in PHP, they usually want Java and Java capabilities for the price of their current PHP site, and a migration path towards this. Since there is no such thing, they end up trying to turn PHP into Java. Kristian -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP-DEV] Re: [Zend Engine 2] Re: [PHP-DEV] Re: [Zend Engine 2] PHP in the future
How much of C has been reused, and reused and reused again? There is no oo in stdlib. -Original Message- Code reusability is a psychological issue. You can reuse code in PHP 4, and it'll be even better in 5 - PEAR is a clear demonstration of this. Whether people actually end up reusing code depends on the way they code, very little does it depend on the language. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: [Zend Engine 2] Re: [PHP-DEV] Re: [Zend Engine 2] PHP in thefuture
True, I hear it is even possible to reuse code in COBOL : ) I believe that the ease of maintenance depends purely on the language. i.e. using a strictly procedural language for a large framework can be quite messy. Have you ever seen large libraries written in perl that consistently call require on a million files. PEAR is a good example of a framework that ran into a lot of limitations of the language, which ZE2 will provide a great deal of help in. -Jason On Fri, 2002-06-07 at 09:36, Zeev Suraski wrote: Code reusability is a psychological issue. You can reuse code in PHP 4, and it'll be even better in 5 - PEAR is a clear demonstration of this. Whether people actually end up reusing code depends on the way they code, very little does it depend on the language. Zeev At 05:27 PM 6/7/2002, Jason T. Greene wrote: IMO, one of the big reasons for having a powerful OO mode, and continually evolving php to have a bigger target than just a web programming language, is code re-usability. You can design a nice consistent Framework, and easily rollout web, gui, and back end applications all using the same framework. -Jason -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP-DEV] Re: [Zend Engine 2] Re: [PHP-DEV] Re: [Zend Engine 2] PHP in the future
At 05:46 PM 6/7/2002, Joseph Tate wrote: How much of C has been reused, and reused and reused again? There is no oo in stdlib. Exactly. C is one of the easiest languages for code reuse, but it totally depends on your programming habits and skill. As a matter of fact, I find Java to be one of the most problematic languages for code reuse in certain cases. Zeev -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: [Zend Engine 2] Re: [PHP-DEV] Re: [Zend Engine 2] PHP in the future
At 06:14 PM 6/7/2002, Jason T. Greene wrote: True, I hear it is even possible to reuse code in COBOL : ) I believe that the ease of maintenance depends purely on the language. i.e. using a strictly procedural language for a large framework can be quite messy. Have you ever seen large libraries written in perl that consistently call require on a million files. PEAR is a good example of a framework that ran into a lot of limitations of the language, which ZE2 will provide a great deal of help in. I agree with everything you said, just thought it'd be cool to point that out :) Zeev -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] oo != php
i don't get it, ze2 introduces private members, consts, statics, namespaces, delegation (and thus mi), class in class. and all this stuff because it don't wants to be another java sebastian is currently working on a book for php-oo, wants to show us how design patterns are realized with php, even how php-projects are designed using uml... and here i must read you want real oo, take java... i know i'm penetrating you again with this worn-out shoes, anyhow, last postings (especially the php future thread) showed me i'm not the only one begging you for real oo to be added *as an option* to php. i'm quite new to this list, so please excuse if i had been sticking on a topic already shot down. and for gods sake (if you've been reading till here) - ***this will be my definitive last posting regarding this issue***. thank you for your patience, in case i'm struggling on you. however, i'm quite disappointed and demotivated by some of your opinions, stating to keep php simple and easy, not to go for a messy java-derivate, not to make things too complicated aso aso please notice, this is no offense, but after getting known of the ze2 features, i personally saw php finally growing out of that php, language for kiddies-image. imho php is a real good language for its target purpose, but it has potential to be much better. i'm not in too deep in php and its history, just following (and had been infrequently using) it since v3. but nearly every one of my collegues and friends said to me forget php for serious things. again, since getting known of ze2, i dreamt of php being not only cheap, easy, fast and extensible, but comprehensive, guiding, more explicit, powerful so it could compete against others in valueable markets like eai, ecommerce, eprocurement and all that funny buzzwords starting with e. not only being the first choice language for so called self-made web designers/developers/admins, *nix freaks, small we rule the world and make best web-applications internet e-startup and one year later f**kup companies. please don't misunderstand me, i don't want to offend anyone by writing down such statements. i'm also a selfmade man and respect all of you and your work - anyhow - realize it's the reality (at least in my special environment it is). again, yes, the're hundreds and thousands of cool applications written in php - really good stuff. but couldn't it be better once php improves and extends to a mature oo-functionality ? imho, what php currently supports regarding oo is the lowest level of integration (eg like javascript and as of flash), and ze2 is currently supporting the very very most basics of oo (classing, private members, somehow overloading, statics) and is (probably) going to support multiple inheritance, synchronized delegation, namespaces... that's imho really a very big step towards real language improvement. serious respect. however, i think it's not enough to say php is a language for easily creating good small and mid-sized web-applications *as well as* building up professional, powerful, extensible and complex applications at enterprise level. yes, indeed there's java on the market for this, there's cf, there's .net, wo aso aso... but who cares? would you really loose your community by expanding the community ? would you kick off all that guys coding php for their own website by giving companies and professionals at least the chance to get things done with php? wouldn't you inspire your existing userland to code better applications ? sorry, i don't get it - i know there has to be some cut at some point - but making oo-imrovements incomplete is worse than not making it at all. having monitored this list now for some weeks and in consequence of the recent discussions, i personally realized that my efforts towards php (time, projects, code, ideas aso aso) were not for nothing but for a language having its own life and own rules, not addressing the state-of-the-art, academically satisfied, commonly used, professional language constraints like object-orientation and explicit variable declaration. my 2c and may this topic never arise again, regards ilker -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: [PHP-CVS] cvs: php4 /ext/mysql/libmysql charset.c config-win.h ctype.c dbug.c dbug.h default.c dll.c errmsg.c errmsg.h get_password.c global.h libmysql.c list.c m_string.h mf_casecnv.c mf_dirname.c mf_format.c mf_path.c my_compress.c my_create.c my_getwd.c my_init.c my_lib.c my_malloc.c my_open.c my_pthread.c my_pthread.h my_realloc.c my_static.c my_sys.h my_tempnam.c my_thr_init.c my_wincond.c my_winthread.c my_write.c mysql.h mysql_com.h mysql_version.h mysqld_error.h net.c raid.h strmake.c strto.c strtoll.c strtoull.c thr_alarm.h violite.c
Zak Greant wrote: Log: Updating embedded libmysql to version 3.23.48 libmysql.lib(my_thr_init.obj): error LNK2001: Unresolved external symbol _win_pthread_init libmysql.lib(my_thr_init.obj): error LNK2001: Unresolved external symbol _pthread_cond_init libmysql.lib(my_thr_init.obj): error LNK2001: Unresolved external symbol _pthread_cond_destroy libmysql.lib(my_compress.obj): error LNK2001: Unresolved external symbol _compress libmysql.lib(my_compress.obj): error LNK2001: Unresolved external symbol _uncompress -- 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] oo != php
From: Ilker Cetinkaya [mailto:[EMAIL PROTECTED]] [snip] but after getting known of the ze2 features, I personally saw PHP finally growing out of that PHP, language for kiddies-image. IMHO PHP is a real good language for its target purpose, but it has potential to be much better. PHP is a nicely done scripting language. Scripting languages tend to be easier to get into, easier to make changes with, and do a good job of gluing disparate components together. Java is a compiled language. Good for building complex tightly knit applications at the higher end of the performance spectrum. For tasks that could be done with a scripting language, the implementation cost is usually higher in Java. C++ is a lower level compiled language. Good for getting every last bit of performance possible out of the hardware. Also good for complex tightly knit applications - but at an even higher development cost. Think of each as a different tool in your toolbox. You choose the tool to fit the job at hand. A screwdriver is not a kiddie hammer. Each is well suited for different kinds of tasks. To extend the metaphor - think of an all-in-one tool - a combination of hammer and screwdriver, say. In trying to combine the two tools meant for different purposes you end up with something that is neither a particularly good hammer, or a particularly good screwdriver. So the focus on improving PHP in the role as a scripting language (not trying to make PHP into Java or C++) makes a great deal of sense. my 2c and may this topic never arise again, Amen :) -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Berkeley db4 support?
hi, since the with-db 'general' config option has been deprecated, what's the status of db4 support? i've searched the lists and perhaps am missing something .. but i find *no* mention of db4 at all! can someone provide -- or point me in the direction of -- some insight on php4-current + db4? thanks much! richard -- R Blake blakers at mac.com http://homepage.mac.com/blakers --
RE: [PHP-DEV] oo != php
--- Preston L. Bannister [EMAIL PROTECTED] wrote: From: Ilker Cetinkaya [mailto:[EMAIL PROTECTED]] [snip] but after getting known of the ze2 features, I personally saw PHP finally growing out of that PHP, language for kiddies-image. IMHO PHP is a real good language for its target purpose, but it has potential to be much better. PHP is a nicely done scripting language. Scripting languages tend to be easier to get into, easier to make changes with, and do a good job of gluing disparate components together. Java is a compiled language. Good for building complex tightly knit applications at the higher end of the performance spectrum. For tasks that could be done with a scripting language, the implementation cost is usually higher in Java. C++ is a lower level compiled language. Good for getting every last bit of performance possible out of the hardware. Also good for complex tightly knit applications - but at an even higher development cost. Think of each as a different tool in your toolbox. You choose the tool to fit the job at hand. A screwdriver is not a kiddie hammer. Each is well suited for different kinds of tasks. To extend the metaphor - think of an all-in-one tool - a combination of hammer and screwdriver, say. In trying to combine the two tools meant for different purposes you end up with something that is neither a particularly good hammer, or a particularly good screwdriver. So the focus on improving PHP in the role as a scripting language (not trying to make PHP into Java or C++) makes a great deal of sense. OO IS OO... JUST BECAUSE JAVA IS OO DOESN'T MEAN WE ARE SUGGESTING MAKING JAVA AGAIN. WE ARE SUGGESTING MORE OO FEATURES. Please Pleas Please realize the difference. Im sick of people associating oo features as java features! Making php more like java would be suggesting making a public static void main(String args[]) in a class, and that gets run when a class with that name is loaded. Now this is stuff specfic to java! Not MI or public/private members these features have been around way before java was ever thought of!!! - Brad __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] oo != php
OO IS OO... JUST BECAUSE JAVA IS OO DOESN'T MEAN WE ARE SUGGESTING MAKING JAVA AGAIN. WE ARE SUGGESTING MORE OO FEATURES. Please Pleas Please realize the difference. Im sick of people associating oo features as java features! Making php more like java would be suggesting making a public static void main(String args[]) in a class, and that gets run when a class with that name is loaded. Now this is stuff specfic to java! Not MI or public/private members these features have been around way before java was ever thought of!!! I completely agree here. Having some extra OO features would be nice. There are a few conditions: - Using them must be optional - Performance should not suffer too much - A clean implementation is possible If adding a few OO features for the people who want (or even need) them can be done under these conditions, I think it should be considered seriously... If one of these conditions can not be met for a certain feature, it won't be worth adding IMHO. Sander. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Zend Engine expert wanted!!!!
Zend Engine unloading extension in the wrong order! (Re-post due to no response) I have been tracking down a core dump with my php extension when it is unloading some of its shared libraries. I have shared extension that is link against libexpat and will load fine if it is the only on in the php.ini. If I then load xml.so extension then my extension it works fine, but if it is my extension then xml.so it crashes while xml.so is unloading libexapt. What I have found is the Zend Engine is unloading extension in the same order it loaded them. load: foo_bar.so load: xml.so unload: foo_bar.so unload: xml.so I believe this is wrong and think it should be in reverse order. load: foo_bar.so load: xml.so unload: xml.so unload: foo_bar.so There are two ways to fix this problem. One is to push the modules to the head of the hash, but looking at the zend_hash_add function I decided to go with the second. Second way is to destroy them in reverse order. I created a zend_hash_reverse_destroy and call that instead of zend_hash_destroy. There may be a better way to do this, but this is the quick fix for me. I have included a patch below, should I submit a bug report as well? Thanks, Brian diff -rc php-4.2.1/Zend/zend.c *** php-4.2.1/Zend/zend.c Tue Feb 26 10:59:25 2002 --- php-4.2.1/Zend/zend.c Thu Jun 6 11:32:57 2002 *** *** 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); --- 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_reverse_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); diff -rc php-4.2.1/Zend/zend_hash.c *** php-4.2.1/Zend/zend_hash.c Mon Apr 22 23:53:26 2002 --- php-4.2.1/Zend/zend_hash.c Thu Jun 6 11:32:57 2002 *** *** 550,555 --- 550,579 SET_INCONSISTENT(HT_DESTROYED); } + ZEND_API void zend_hash_reverse_destroy(HashTable *ht) + { + Bucket *p, *q; + + IS_CONSISTENT(ht); + + SET_INCONSISTENT(HT_IS_DESTROYING); + + p = ht-pListTail; + while (p != NULL) { + q = p; + p = p-pLast; + if (ht-pDestructor) { + ht-pDestructor(q-pData); + } + if (!q-pDataPtr q-pData) { + pefree(q-pData, ht-persistent); + } + pefree(q, ht-persistent); + } + pefree(ht-arBuckets, ht-persistent); + + SET_INCONSISTENT(HT_DESTROYED); + } ZEND_API void zend_hash_clean(HashTable *ht) { -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] DOMXML Function consistency
Excellent, looks like this bug report is getting some limelight. While we are on the topic, I just wanted to put in a small plea. I realize that we want to map close the W3C, but I have a small request. Don't deprecate get_content(). I realize it is not a well know W3C standard, but there is a function called wholeText() which just strings together all the text nodes of a child, skipping any element nodes. It is just really a pain in the rear to handle text nodes by getting the child nodes and then running through them, checking for text nodes and then concating them together. It is just a lot of extra work for something so trivial. I really do scream the words W3C most of the time, but it is just so unwieldy to handle the xml tree without this function. Dan Christian Stocker ([EMAIL PROTECTED]) wrote: Hi I have no problem with that, but the old functions should not be deprecated, it's the W3C-Standard way. And if i understood it correctly, both methods (name and nodeName) can be used for the same... chregu On Fri, 7 Jun 2002, Joseph Tate wrote: A bug report or two have been made regarding function names in attribute nodes. Taking a look, nodes have the following access functions: node_name node_type node_value etc. However attribute nodes have the following access functions: name value specified I am thinking that to make it more consistent, we should change the attribute functions to attr_name or node_name attr_value or node_value attr_specified or node_specified I'd vote for the latter series since the programmer already knows they're attributes. Renaming will reduce the WTF factor. We can leave the aliases to the old functions for a while to maintain BC. WISH: I wish there was a Zend Function for marking a function alias as deprecated, I.e. so that a warning message is displayed if the function is used after being marked deprecated. A way to display the replacement function in the warning message would be nice too. Joseph -- nam...christian stockeradr...bremgartnerstr. 66, ch-8003 zurich pho...+41 1 451 6021 www...http://phant.ch/chregu mob...+41 76 561 8860 [EMAIL PROTECTED] wor...+41 1 240 5670 gpg...0x5CE1DECB -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php -- Daniel Allen, [EMAIL PROTECTED] http://www.mojavelinux.com/ When you're raised by the Jesuits, you become either obedient or impertinent -- Jack McCoy, Law and Order -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Zend Engine expert wanted!!!!
If this is your problem maybe a offical soultion to the problem should be thought. Like in your extension you can define a priority for loading and unloading your extension in the ini. Kinda like init.d. Has there been any discussion about this topic before. - brad --- Brian France [EMAIL PROTECTED] wrote: Zend Engine unloading extension in the wrong order! (Re-post due to no response) I have been tracking down a core dump with my php extension when it is unloading some of its shared libraries. I have shared extension that is link against libexpat and will load fine if it is the only on in the php.ini. If I then load xml.so extension then my extension it works fine, but if it is my extension then xml.so it crashes while xml.so is unloading libexapt. What I have found is the Zend Engine is unloading extension in the same order it loaded them. load: foo_bar.so load: xml.so unload: foo_bar.so unload: xml.so I believe this is wrong and think it should be in reverse order. load: foo_bar.so load: xml.so unload: xml.so unload: foo_bar.so There are two ways to fix this problem. One is to push the modules to the head of the hash, but looking at the zend_hash_add function I decided to go with the second. Second way is to destroy them in reverse order. I created a zend_hash_reverse_destroy and call that instead of zend_hash_destroy. There may be a better way to do this, but this is the quick fix for me. I have included a patch below, should I submit a bug report as well? Thanks, Brian diff -rc php-4.2.1/Zend/zend.c *** php-4.2.1/Zend/zend.c Tue Feb 26 10:59:25 2002 --- php-4.2.1/Zend/zend.c Thu Jun 6 11:32:57 2002 *** *** 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); --- 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_reverse_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); diff -rc php-4.2.1/Zend/zend_hash.c *** php-4.2.1/Zend/zend_hash.c Mon Apr 22 23:53:26 2002 --- php-4.2.1/Zend/zend_hash.c Thu Jun 6 11:32:57 2002 *** *** 550,555 --- 550,579 SET_INCONSISTENT(HT_DESTROYED); } + ZEND_API void zend_hash_reverse_destroy(HashTable *ht) + { + Bucket *p, *q; + + IS_CONSISTENT(ht); + + SET_INCONSISTENT(HT_IS_DESTROYING); + + p = ht-pListTail; + while (p != NULL) { + q = p; + p = p-pLast; + if (ht-pDestructor) { + ht-pDestructor(q-pData); + } + if (!q-pDataPtr q-pData) { + pefree(q-pData, ht-persistent); + } + pefree(q, ht-persistent); + } + pefree(ht-arBuckets, ht-persistent); + + SET_INCONSISTENT(HT_DESTROYED); + } ZEND_API void zend_hash_clean(HashTable *ht) { -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Zend Engine expert wanted!!!!
The issue is *not* the order in which the Zend Engine is loading them in, but the order it is unloading them in. Switching order for loading was a fix that just happened to work. With the patch I provided I can put them in any order and it works. Looking at the Apache source it keeps a list of loaded DSOs and when it loads one pushes it on to the head of the list. This way when it iterates over the list to unload them it is in reverse order than it loaded them. I have been told by a few co-workers that it is industry standard to unload in reverse order that you loaded, but I wanted at least one example so I looked at the Apache source. Shouldn't the Zend Engine always unload extension in reverse order it loaded them in? Thanks! Brian BTW, I think the priority for loading in the ini should be an option, but a completely different subject. At 12:12 PM -0700 6/7/02, brad lafountain wrote: If this is your problem maybe a offical soultion to the problem should be thought. Like in your extension you can define a priority for loading and unloading your extension in the ini. Kinda like init.d. Has there been any discussion about this topic before. - brad --- Brian France [EMAIL PROTECTED] wrote: Zend Engine unloading extension in the wrong order! (Re-post due to no response) I have been tracking down a core dump with my php extension when it is unloading some of its shared libraries. I have shared extension that is link against libexpat and will load fine if it is the only on in the php.ini. If I then load xml.so extension then my extension it works fine, but if it is my extension then xml.so it crashes while xml.so is unloading libexapt. What I have found is the Zend Engine is unloading extension in the same order it loaded them. load: foo_bar.so load: xml.so unload: foo_bar.so unload: xml.so I believe this is wrong and think it should be in reverse order. load: foo_bar.so load: xml.so unload: xml.so unload: foo_bar.so There are two ways to fix this problem. One is to push the modules to the head of the hash, but looking at the zend_hash_add function I decided to go with the second. Second way is to destroy them in reverse order. I created a zend_hash_reverse_destroy and call that instead of zend_hash_destroy. There may be a better way to do this, but this is the quick fix for me. I have included a patch below, should I submit a bug report as well? Thanks, Brian diff -rc php-4.2.1/Zend/zend.c *** php-4.2.1/Zend/zend.c Tue Feb 26 10:59:25 2002 --- php-4.2.1/Zend/zend.c Thu Jun 6 11:32:57 2002 *** *** 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); --- 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_reverse_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); diff -rc php-4.2.1/Zend/zend_hash.c *** php-4.2.1/Zend/zend_hash.c Mon Apr 22 23:53:26 2002 --- php-4.2.1/Zend/zend_hash.c Thu Jun 6 11:32:57 2002 *** *** 550,555 --- 550,579 SET_INCONSISTENT(HT_DESTROYED); } + ZEND_API void zend_hash_reverse_destroy(HashTable *ht) + { + Bucket *p, *q; + + IS_CONSISTENT(ht); + + SET_INCONSISTENT(HT_IS_DESTROYING); + + p = ht-pListTail; + while (p != NULL) { + q = p; + p = p-pLast; + if (ht-pDestructor) { + ht-pDestructor(q-pData); + } + if (!q-pDataPtr q-pData) { + pefree(q-pData, ht-persistent); + } + pefree(q, ht-persistent); + } + pefree(ht-arBuckets, ht-persistent); + + SET_INCONSISTENT(HT_DESTROYED); + } ZEND_API void zend_hash_clean(HashTable *ht) { -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Zend Engine expert wanted!!!!
Can you check and see if using zend_hash_graceful_reverse_destroy() fixes your problem? Andi At 11:44 AM 6/7/2002 -0700, Brian France wrote: Zend Engine unloading extension in the wrong order! (Re-post due to no response) I have been tracking down a core dump with my php extension when it is unloading some of its shared libraries. I have shared extension that is link against libexpat and will load fine if it is the only on in the php.ini. If I then load xml.so extension then my extension it works fine, but if it is my extension then xml.so it crashes while xml.so is unloading libexapt. What I have found is the Zend Engine is unloading extension in the same order it loaded them. load: foo_bar.so load: xml.so unload: foo_bar.so unload: xml.so I believe this is wrong and think it should be in reverse order. load: foo_bar.so load: xml.so unload: xml.so unload: foo_bar.so There are two ways to fix this problem. One is to push the modules to the head of the hash, but looking at the zend_hash_add function I decided to go with the second. Second way is to destroy them in reverse order. I created a zend_hash_reverse_destroy and call that instead of zend_hash_destroy. There may be a better way to do this, but this is the quick fix for me. I have included a patch below, should I submit a bug report as well? Thanks, Brian diff -rc php-4.2.1/Zend/zend.c *** php-4.2.1/Zend/zend.c Tue Feb 26 10:59:25 2002 --- php-4.2.1/Zend/zend.c Thu Jun 6 11:32:57 2002 *** *** 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); --- 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_reverse_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); diff -rc php-4.2.1/Zend/zend_hash.c *** php-4.2.1/Zend/zend_hash.c Mon Apr 22 23:53:26 2002 --- php-4.2.1/Zend/zend_hash.c Thu Jun 6 11:32:57 2002 *** *** 550,555 --- 550,579 SET_INCONSISTENT(HT_DESTROYED); } + ZEND_API void zend_hash_reverse_destroy(HashTable *ht) + { + Bucket *p, *q; + + IS_CONSISTENT(ht); + + SET_INCONSISTENT(HT_IS_DESTROYING); + + p = ht-pListTail; + while (p != NULL) { + q = p; + p = p-pLast; + if (ht-pDestructor) { + ht-pDestructor(q-pData); + } + if (!q-pDataPtr q-pData) { + pefree(q-pData, ht-persistent); + } + pefree(q, ht-persistent); + } + pefree(ht-arBuckets, ht-persistent); + + SET_INCONSISTENT(HT_DESTROYED); + } ZEND_API void zend_hash_clean(HashTable *ht) { -- 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] Fwd: REJECTED: 5.1.0.14.2.20020607225328.03df2740@127.0.0.1
Any idea why I got this when posting to php-dev? Andi Delivered-To: [EMAIL PROTECTED] Sender: [EMAIL PROTECTED] (reject) Date: Thu, 06 Jun 2002 08:50:05 -0700 X-Autogenerated: Reply To: Andi Gutmans [EMAIL PROTECTED] From: [EMAIL PROTECTED] Subject: REJECTED: [EMAIL PROTECTED] X-Autogenerated: UNSOLICITED ELECTRONIC COMMUNICATION Sender: [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] Original-Message-ID: [EMAIL PROTECTED] Original-Sender: Andi Gutmans [EMAIL PROTECTED] Original-Subject: Re: [PHP-DEV] Zend Engine expert wanted Original-Date: Fri, 07 Jun 2002 22:53:42 +0300 SERVICE of LEGAL NOTICE: Pursuant to California Law (cref. California Business Professions Code §§ 17538.4, 17538.45 (2001)), the message referenced herein, uniquely identified by the following Internet messaging headers: { Original-Message-ID: [EMAIL PROTECTED] Original-Sender: Andi Gutmans [EMAIL PROTECTED] Original-Subject: Re: [PHP-DEV] Zend Engine expert wanted Original-Date: Fri, 07 Jun 2002 22:53:42 +0300 } has been categorized as either Unsolicited Bulk E-mail (UBE), or Unsolicited Commercial E-Mail (UCE). Your server is one of those included in the headers of the message, and thus has been deemed an offending server used in the delivery of this message. California Law establishes Civil Right of Action against violators: In addition to any other action available under law, any electronic mail service provider whose policy on unsolicited electronic mail advertisements is violated as provided in this section may bring a civil action to recover the actual monetary loss suffered by that provider by reason of that violation, or liquidated damages of fifty dollars ($50) for each electronic mail message initiated or delivered in violation of this section, up to a maximum of twenty-five thousand dollars ($25,000) per day, whichever amount is greater. Your cooperation, as outlined below, is REQUIRED by California Law. To avoid being cited as an accomplice in this matter, PRESENCE-GROUP.COM requires you to take immediate and appropriate actions to stop the problem in the future. You are to notify us within three (3) days of those actions. Our experience shows that all legitimate Internet providers take immediate action. If your server is an offending server in the *origination* of this message, PRESENCE-GROUP.COM demands that you provide us with the name, mailing address and other contact information of the originator of this message. If you furnish PRESENCE-GROUP.COM with this information, PRESENCE-GROUP.COM will release you from liability in this incident. Merely telling us you have cancelled or deleted the account is *not* adequate to satisfy the PRESENCE-GROUP.COM policy. If your server is an offending server in the *relay* of this message, PRESENCE-GROUP.COM demands that you take measures to stop the open relay from your insecure mailserver. If you do not furnish PRESENCE-GROUP.COM with the information we have requested, or provide us only with auto-responder or form messages, PRESENCE-GROUP.COM will consider how often your server is involved with UBE/UCE. We may then: 1. Block access to from your server. 2. Deem you to be a co-conspirator in the delivery of UBE/UCE messages. 3. Hold you liable for fees damages. There is no need for you to send your appropriate use policy to us; As stated by law, it is our policy that governs. In order to provide required response to this notice, or if you believe you have received this notice in error, please forward your communication to: [EMAIL PROTECTED], with the words SPAM EXCEPTION exactly included in the message Subject: header. Further, you may choose to notify your intended recipient by an additional, alternate method requesting that they address this matter with the PRESENCE-GROUP.COM mail server administrator. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Zend Engine expert wanted!!!!
I will try that, but I was worried that the pDestructor function would not get called for each item like it was in zend_hash_destroy. Is this the case? Looking at the code what is the difference between zend_hash_graceful_destroy and zend_hash_destroy? Thanks again for the help! Brian At 10:53 PM +0300 6/7/02, Andi Gutmans wrote: Can you check and see if using zend_hash_graceful_reverse_destroy() fixes your problem? Andi At 11:44 AM 6/7/2002 -0700, Brian France wrote: Zend Engine unloading extension in the wrong order! (Re-post due to no response) I have been tracking down a core dump with my php extension when it is unloading some of its shared libraries. I have shared extension that is link against libexpat and will load fine if it is the only on in the php.ini. If I then load xml.so extension then my extension it works fine, but if it is my extension then xml.so it crashes while xml.so is unloading libexapt. What I have found is the Zend Engine is unloading extension in the same order it loaded them. load: foo_bar.so load: xml.so unload: foo_bar.so unload: xml.so I believe this is wrong and think it should be in reverse order. load: foo_bar.so load: xml.so unload: xml.so unload: foo_bar.so There are two ways to fix this problem. One is to push the modules to the head of the hash, but looking at the zend_hash_add function I decided to go with the second. Second way is to destroy them in reverse order. I created a zend_hash_reverse_destroy and call that instead of zend_hash_destroy. There may be a better way to do this, but this is the quick fix for me. I have included a patch below, should I submit a bug report as well? Thanks, Brian diff -rc php-4.2.1/Zend/zend.c *** php-4.2.1/Zend/zend.c Tue Feb 26 10:59:25 2002 --- php-4.2.1/Zend/zend.c Thu Jun 6 11:32:57 2002 *** *** 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); --- 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_reverse_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); diff -rc php-4.2.1/Zend/zend_hash.c *** php-4.2.1/Zend/zend_hash.c Mon Apr 22 23:53:26 2002 --- php-4.2.1/Zend/zend_hash.c Thu Jun 6 11:32:57 2002 *** *** 550,555 --- 550,579 SET_INCONSISTENT(HT_DESTROYED); } + ZEND_API void zend_hash_reverse_destroy(HashTable *ht) + { + Bucket *p, *q; + + IS_CONSISTENT(ht); + + SET_INCONSISTENT(HT_IS_DESTROYING); + + p = ht-pListTail; + while (p != NULL) { + q = p; + p = p-pLast; + if (ht-pDestructor) { + ht-pDestructor(q-pData); + } + if (!q-pDataPtr q-pData) { + pefree(q-pData, ht-persistent); + } + pefree(q, ht-persistent); + } + pefree(ht-arBuckets, ht-persistent); + + SET_INCONSISTENT(HT_DESTROYED); + } ZEND_API void zend_hash_clean(HashTable *ht) { -- 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] Fwd: REJECTED:5.1.0.14.2.20020607225328.03df2740@127.0.0.1
Somebody from PRESENCE-GROUP.COM is subscribed to php-dev list and is filtering mail through spamcop or something program. I am getting them to. Brian At 10:58 PM +0300 6/7/02, Andi Gutmans wrote: Any idea why I got this when posting to php-dev? Andi Delivered-To: [EMAIL PROTECTED] Sender: [EMAIL PROTECTED] (reject) Date: Thu, 06 Jun 2002 08:50:05 -0700 X-Autogenerated: Reply To: Andi Gutmans [EMAIL PROTECTED] From: [EMAIL PROTECTED] Subject: REJECTED: [EMAIL PROTECTED] X-Autogenerated: UNSOLICITED ELECTRONIC COMMUNICATION Sender: [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] Original-Message-ID: [EMAIL PROTECTED] Original-Sender: Andi Gutmans [EMAIL PROTECTED] Original-Subject: Re: [PHP-DEV] Zend Engine expert wanted Original-Date: Fri, 07 Jun 2002 22:53:42 +0300 SERVICE of LEGAL NOTICE: Pursuant to California Law (cref. California Business Professions Code §§ 17538.4, 17538.45 (2001)), the message referenced herein, uniquely identified by the following Internet messaging headers: { Original-Message-ID: [EMAIL PROTECTED] Original-Sender: Andi Gutmans [EMAIL PROTECTED] Original-Subject: Re: [PHP-DEV] Zend Engine expert wanted Original-Date: Fri, 07 Jun 2002 22:53:42 +0300 } has been categorized as either Unsolicited Bulk E-mail (UBE), or Unsolicited Commercial E-Mail (UCE). Your server is one of those included in the headers of the message, and thus has been deemed an offending server used in the delivery of this message. California Law establishes Civil Right of Action against violators: In addition to any other action available under law, any electronic mail service provider whose policy on unsolicited electronic mail advertisements is violated as provided in this section may bring a civil action to recover the actual monetary loss suffered by that provider by reason of that violation, or liquidated damages of fifty dollars ($50) for each electronic mail message initiated or delivered in violation of this section, up to a maximum of twenty-five thousand dollars ($25,000) per day, whichever amount is greater. Your cooperation, as outlined below, is REQUIRED by California Law. To avoid being cited as an accomplice in this matter, PRESENCE-GROUP.COM requires you to take immediate and appropriate actions to stop the problem in the future. You are to notify us within three (3) days of those actions. Our experience shows that all legitimate Internet providers take immediate action. If your server is an offending server in the *origination* of this message, PRESENCE-GROUP.COM demands that you provide us with the name, mailing address and other contact information of the originator of this message. If you furnish PRESENCE-GROUP.COM with this information, PRESENCE-GROUP.COM will release you from liability in this incident. Merely telling us you have cancelled or deleted the account is *not* adequate to satisfy the PRESENCE-GROUP.COM policy. If your server is an offending server in the *relay* of this message, PRESENCE-GROUP.COM demands that you take measures to stop the open relay from your insecure mailserver. If you do not furnish PRESENCE-GROUP.COM with the information we have requested, or provide us only with auto-responder or form messages, PRESENCE-GROUP.COM will consider how often your server is involved with UBE/UCE. We may then: 1. Block access to from your server. 2. Deem you to be a co-conspirator in the delivery of UBE/UCE messages. 3. Hold you liable for fees damages. There is no need for you to send your appropriate use policy to us; As stated by law, it is our policy that governs. In order to provide required response to this notice, or if you believe you have received this notice in error, please forward your communication to: [EMAIL PROTECTED], with the words SPAM EXCEPTION exactly included in the message Subject: header. Further, you may choose to notify your intended recipient by an additional, alternate method requesting that they address this matter with the PRESENCE-GROUP.COM mail server administrator. -- 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] Fwd: REJECTED: 5.1.0.14.2.20020607225328.03df2740@127.0.0.1
I got it too.. - brad --- Andi Gutmans [EMAIL PROTECTED] wrote: Any idea why I got this when posting to php-dev? Andi Delivered-To: [EMAIL PROTECTED] Sender: [EMAIL PROTECTED] (reject) Date: Thu, 06 Jun 2002 08:50:05 -0700 X-Autogenerated: Reply To: Andi Gutmans [EMAIL PROTECTED] From: [EMAIL PROTECTED] Subject: REJECTED: [EMAIL PROTECTED] X-Autogenerated: UNSOLICITED ELECTRONIC COMMUNICATION Sender: [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] Original-Message-ID: [EMAIL PROTECTED] Original-Sender: Andi Gutmans [EMAIL PROTECTED] Original-Subject: Re: [PHP-DEV] Zend Engine expert wanted Original-Date: Fri, 07 Jun 2002 22:53:42 +0300 SERVICE of LEGAL NOTICE: Pursuant to California Law (cref. California Business Professions Code §§ 17538.4, 17538.45 (2001)), the message referenced herein, uniquely identified by the following Internet messaging headers: { Original-Message-ID: [EMAIL PROTECTED] Original-Sender: Andi Gutmans [EMAIL PROTECTED] Original-Subject: Re: [PHP-DEV] Zend Engine expert wanted Original-Date: Fri, 07 Jun 2002 22:53:42 +0300 } has been categorized as either Unsolicited Bulk E-mail (UBE), or Unsolicited Commercial E-Mail (UCE). Your server is one of those included in the headers of the message, and thus has been deemed an offending server used in the delivery of this message. California Law establishes Civil Right of Action against violators: In addition to any other action available under law, any electronic mail service provider whose policy on unsolicited electronic mail advertisements is violated as provided in this section may bring a civil action to recover the actual monetary loss suffered by that provider by reason of that violation, or liquidated damages of fifty dollars ($50) for each electronic mail message initiated or delivered in violation of this section, up to a maximum of twenty-five thousand dollars ($25,000) per day, whichever amount is greater. Your cooperation, as outlined below, is REQUIRED by California Law. To avoid being cited as an accomplice in this matter, PRESENCE-GROUP.COM requires you to take immediate and appropriate actions to stop the problem in the future. You are to notify us within three (3) days of those actions. Our experience shows that all legitimate Internet providers take immediate action. If your server is an offending server in the *origination* of this message, PRESENCE-GROUP.COM demands that you provide us with the name, mailing address and other contact information of the originator of this message. If you furnish PRESENCE-GROUP.COM with this information, PRESENCE-GROUP.COM will release you from liability in this incident. Merely telling us you have cancelled or deleted the account is *not* adequate to satisfy the PRESENCE-GROUP.COM policy. If your server is an offending server in the *relay* of this message, PRESENCE-GROUP.COM demands that you take measures to stop the open relay from your insecure mailserver. If you do not furnish PRESENCE-GROUP.COM with the information we have requested, or provide us only with auto-responder or form messages, PRESENCE-GROUP.COM will consider how often your server is involved with UBE/UCE. We may then: 1. Block access to from your server. 2. Deem you to be a co-conspirator in the delivery of UBE/UCE messages. 3. Hold you liable for fees damages. There is no need for you to send your appropriate use policy to us; As stated by law, it is our policy that governs. In order to provide required response to this notice, or if you believe you have received this notice in error, please forward your communication to: [EMAIL PROTECTED], with the words SPAM EXCEPTION exactly included in the message Subject: header. Further, you may choose to notify your intended recipient by an additional, alternate method requesting that they address this matter with the PRESENCE-GROUP.COM mail server administrator. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Zend Engine expert wanted!!!!
At 01:00 PM 6/7/2002 -0700, Brian France wrote: I will try that, but I was worried that the pDestructor function would not get called for each item like it was in zend_hash_destroy. Is this the case? Looking at the code what is the difference between zend_hash_graceful_destroy and zend_hash_destroy? Yeah the destructor should be called. The graceful_destroy() is just a bit more careful and used when destroying the resource list. Andi -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] HUGE APOLOGIES to the LIST for SMAPCOP screw-up!!
i believe its been fixed :-S richard
[PHP-DEV] Sorry! Re: [PHP-DEV] Fwd: REJECTED:5.1.0.14.2.20020607225328.03df2740@127.0.0.1
sorry abt that .. an overzealous SPAM filter triggered on your three exclamation points . in your SUBJECT should be fixed now :-S --On Friday, June 7, 2002 10:58 PM +0300 Andi Gutmans [EMAIL PROTECTED] wrote: Any idea why I got this when posting to php-dev? Andi Delivered-To: [EMAIL PROTECTED] Sender: [EMAIL PROTECTED] (reject) Date: Thu, 06 Jun 2002 08:50:05 -0700 X-Autogenerated: Reply To: Andi Gutmans [EMAIL PROTECTED] From: [EMAIL PROTECTED] Subject: REJECTED: [EMAIL PROTECTED] X-Autogenerated: UNSOLICITED ELECTRONIC COMMUNICATION Sender: [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] Original-Message-ID: [EMAIL PROTECTED] Original-Sender: Andi Gutmans [EMAIL PROTECTED] Original-Subject: Re: [PHP-DEV] Zend Engine expert wanted Original-Date: Fri, 07 Jun 2002 22:53:42 +0300 SERVICE of LEGAL NOTICE: Pursuant to California Law (cref. California Business Professions Code §§ 17538.4, 17538.45 (2001)), the message referenced herein, uniquely identified by the following Internet messaging headers: { Original-Message-ID: [EMAIL PROTECTED] Original-Sender: Andi Gutmans [EMAIL PROTECTED] Original-Subject: Re: [PHP-DEV] Zend Engine expert wanted Original-Date: Fri, 07 Jun 2002 22:53:42 +0300 } has been categorized as either Unsolicited Bulk E-mail (UBE), or Unsolicited Commercial E-Mail (UCE). Your server is one of those included in the headers of the message, and thus has been deemed an offending server used in the delivery of this message. California Law establishes Civil Right of Action against violators: In addition to any other action available under law, any electronic mail service provider whose policy on unsolicited electronic mail advertisements is violated as provided in this section may bring a civil action to recover the actual monetary loss suffered by that provider by reason of that violation, or liquidated damages of fifty dollars ($50) for each electronic mail message initiated or delivered in violation of this section, up to a maximum of twenty-five thousand dollars ($25,000) per day, whichever amount is greater. Your cooperation, as outlined below, is REQUIRED by California Law. To avoid being cited as an accomplice in this matter, PRESENCE-GROUP.COM requires you to take immediate and appropriate actions to stop the problem in the future. You are to notify us within three (3) days of those actions. Our experience shows that all legitimate Internet providers take immediate action. If your server is an offending server in the *origination* of this message, PRESENCE-GROUP.COM demands that you provide us with the name, mailing address and other contact information of the originator of this message. If you furnish PRESENCE-GROUP.COM with this information, PRESENCE-GROUP.COM will release you from liability in this incident. Merely telling us you have cancelled or deleted the account is *not* adequate to satisfy the PRESENCE-GROUP.COM policy. If your server is an offending server in the *relay* of this message, PRESENCE-GROUP.COM demands that you take measures to stop the open relay from your insecure mailserver. If you do not furnish PRESENCE-GROUP.COM with the information we have requested, or provide us only with auto-responder or form messages, PRESENCE-GROUP.COM will consider how often your server is involved with UBE/UCE. We may then: 1. Block access to from your server. 2. Deem you to be a co-conspirator in the delivery of UBE/UCE messages. 3. Hold you liable for fees damages. There is no need for you to send your appropriate use policy to us; As stated by law, it is our policy that governs. In order to provide required response to this notice, or if you believe you have received this notice in error, please forward your communication to: [EMAIL PROTECTED], with the words SPAM EXCEPTION exactly included in the message Subject: header. Further, you may choose to notify your intended recipient by an additional, alternate method requesting that they address this matter with the PRESENCE-GROUP.COM mail server administrator. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Zend Engine expert wanted!!!!
Yes, zend_hash_graceful_reverse_destroy() fixes the problem as well. Is this a better solution for the fix? Thanks, Brian At 11:06 PM +0300 6/7/02, Andi Gutmans wrote: At 01:00 PM 6/7/2002 -0700, Brian France wrote: I will try that, but I was worried that the pDestructor function would not get called for each item like it was in zend_hash_destroy. Is this the case? Looking at the code what is the difference between zend_hash_graceful_destroy and zend_hash_destroy? Yeah the destructor should be called. The graceful_destroy() is just a bit more careful and used when destroying the resource list. Andi -- 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] Re: PHP profiling results under 2.0.37 Re: Performance of Apache2.0 Filter
On Fri, 7 Jun 2002, Brian Pane wrote: IMHO, that's a design flaw. Regardless of whether PHP is doing buffering, it shouldn't break up blocks of static content into small pieces--especially not as small as 400 bytes. While it's certainly valid for PHP to insert a flush bucket right before a block of embedded code (in case that code takes a long time to run), breaking static text into 400-byte chunks will usually mean that it takes *longer* for the content to reach the client, which probably defeats PHP's motivation for doing the nonbuffered output. There's code downstream, in the httpd's core_output_filter and the OS's TCP driver, that can make much better decisions about when to buffer and when not to buffer. FWIW, I totally agree here. One of the biggest problems with the way PHP handles buckets (as I'm sure has been discussed before I know) is that static content cannot remain in its native form as it goes through PHP, or at least not in very big chunks. Take as a counterexample the way mod_include deals with FILE buckets. It reads the FILE bucket (which causes the file the be MMAPed if allowed), and from there it just scans through the mmaped region, and if it finds nothing, it hands it on to the next filter still in the single-MMAP-bucket form. PHP/Zend, on the other hand, takes the file descriptor out of the file bucket, runs it through a lexical analyzer which tokenizes it up to 400 bytes at a time, runs it through the yacc-generated grammar as necessary, and handles it from there. Far more optimal would be to take the input, do a search through it for a starting tag just as mod_include does, and if none is found (or up until one is found), just tell the SAPI module to go ahead and send up to THIS point out to the client unmodified. So basically the difference between this and what we have now is that the lexer should not take each 400 byte buffer and say here is (up to) 400 bytes of inline HTML, send it to the client as-is; instead, it should be able to do something along the lines of taking the input 400 bytes at a time, and as soon as it starts seeing inline HTML, keep track of the starting offset (in bytes), and keep scanning through those 400 byte buffers in a tight loop until it finds something that's NOT inline HTML, and set the ending offset. Then it can notify PHP in one call send bytes 375-10136 to the client as-is, it's inline html. Another important thing that the lexical analyzer needs to support is that the user of Zend (PHP in this case) should be able to specify the YY_INPUT function rather than being *forced* to give Zend a filename or file descriptor. That's absolutely critical for the filtering design under Apache 2.0 to work right. What we have now is a total kludge. I realize I'm calling into question some fundamental design decisions of which I was not a part, so of course there is the possibility that I'm missing some important detail. But I think it would be relatively easy to insert an optimization here that could make a huge difference without breaking too many assumptions in the code. I think. Thanks, --Cliff -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Zend Engine expert wanted!!!!
At 01:14 PM 6/7/2002 -0700, Brian France wrote: Yes, zend_hash_graceful_reverse_destroy() fixes the problem as well. Is this a better solution for the fix? It's the same but doesn't require a new function. Andi -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: Sorry! Re: [PHP-DEV] Fwd: REJECTED: 5.1.0.14.2.20020607225328.03df2740@127.0.0.1
Richard S. Blake [EMAIL PROTECTED] wrote: sorry abt that .. an overzealous SPAM filter triggered on your three exclamation points . in your SUBJECT should be fixed now :-S you should further fix your spam system to bounce to the SMTP envelope sender instead of whatever broken thing it is doing now. jim -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: [Zend Engine 2] RE: [PHP-DEV] oo != php
There are two reasons we repeat the 'PHP is not Java mantra': (a) Many of those requesting these changes actually DO want to see PHP as a Java with PHPish syntax. (b) Java is (so far) the best implemented OO language out there that's actually being used. It symbolizes the extreme OO world, if you will. Zeev At 08:41 PM 6/7/2002, brad lafountain wrote: --- Preston L. Bannister [EMAIL PROTECTED] wrote: From: Ilker Cetinkaya [mailto:[EMAIL PROTECTED]] [snip] but after getting known of the ze2 features, I personally saw PHP finally growing out of that PHP, language for kiddies-image. IMHO PHP is a real good language for its target purpose, but it has potential to be much better. PHP is a nicely done scripting language. Scripting languages tend to be easier to get into, easier to make changes with, and do a good job of gluing disparate components together. Java is a compiled language. Good for building complex tightly knit applications at the higher end of the performance spectrum. For tasks that could be done with a scripting language, the implementation cost is usually higher in Java. C++ is a lower level compiled language. Good for getting every last bit of performance possible out of the hardware. Also good for complex tightly knit applications - but at an even higher development cost. Think of each as a different tool in your toolbox. You choose the tool to fit the job at hand. A screwdriver is not a kiddie hammer. Each is well suited for different kinds of tasks. To extend the metaphor - think of an all-in-one tool - a combination of hammer and screwdriver, say. In trying to combine the two tools meant for different purposes you end up with something that is neither a particularly good hammer, or a particularly good screwdriver. So the focus on improving PHP in the role as a scripting language (not trying to make PHP into Java or C++) makes a great deal of sense. OO IS OO... JUST BECAUSE JAVA IS OO DOESN'T MEAN WE ARE SUGGESTING MAKING JAVA AGAIN. WE ARE SUGGESTING MORE OO FEATURES. Please Pleas Please realize the difference. Im sick of people associating oo features as java features! Making php more like java would be suggesting making a public static void main(String args[]) in a class, and that gets run when a class with that name is loaded. Now this is stuff specfic to java! Not MI or public/private members these features have been around way before java was ever thought of!!! - Brad __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Zend Engine expert wanted!!!!
Brian, We're on the job. I generally think you're right, we have to do some more thinking but chances are we will change the shutdown order to be reversed. Sorry for not ack'ing earlier. Zeev At 09:44 PM 6/7/2002, Brian France wrote: Zend Engine unloading extension in the wrong order! (Re-post due to no response) I have been tracking down a core dump with my php extension when it is unloading some of its shared libraries. I have shared extension that is link against libexpat and will load fine if it is the only on in the php.ini. If I then load xml.so extension then my extension it works fine, but if it is my extension then xml.so it crashes while xml.so is unloading libexapt. What I have found is the Zend Engine is unloading extension in the same order it loaded them. load: foo_bar.so load: xml.so unload: foo_bar.so unload: xml.so I believe this is wrong and think it should be in reverse order. load: foo_bar.so load: xml.so unload: xml.so unload: foo_bar.so There are two ways to fix this problem. One is to push the modules to the head of the hash, but looking at the zend_hash_add function I decided to go with the second. Second way is to destroy them in reverse order. I created a zend_hash_reverse_destroy and call that instead of zend_hash_destroy. There may be a better way to do this, but this is the quick fix for me. I have included a patch below, should I submit a bug report as well? Thanks, Brian diff -rc php-4.2.1/Zend/zend.c *** php-4.2.1/Zend/zend.c Tue Feb 26 10:59:25 2002 --- php-4.2.1/Zend/zend.c Thu Jun 6 11:32:57 2002 *** *** 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); --- 487,493 zend_destroy_rsrc_list(EG(persistent_list) TSRMLS_CC); #endif zend_destroy_rsrc_list_dtors(); ! zend_hash_reverse_destroy(module_registry); zend_hash_destroy(GLOBAL_FUNCTION_TABLE); free(GLOBAL_FUNCTION_TABLE); zend_hash_destroy(GLOBAL_CLASS_TABLE); diff -rc php-4.2.1/Zend/zend_hash.c *** php-4.2.1/Zend/zend_hash.c Mon Apr 22 23:53:26 2002 --- php-4.2.1/Zend/zend_hash.c Thu Jun 6 11:32:57 2002 *** *** 550,555 --- 550,579 SET_INCONSISTENT(HT_DESTROYED); } + ZEND_API void zend_hash_reverse_destroy(HashTable *ht) + { + Bucket *p, *q; + + IS_CONSISTENT(ht); + + SET_INCONSISTENT(HT_IS_DESTROYING); + + p = ht-pListTail; + while (p != NULL) { + q = p; + p = p-pLast; + if (ht-pDestructor) { + ht-pDestructor(q-pData); + } + if (!q-pDataPtr q-pData) { + pefree(q-pData, ht-persistent); + } + pefree(q, ht-persistent); + } + pefree(ht-arBuckets, ht-persistent); + + SET_INCONSISTENT(HT_DESTROYED); + } ZEND_API void zend_hash_clean(HashTable *ht) { -- 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] What kind of option ASP/Java has for this?
At 02:43 8-6-2002, Yasuo Ohgaki shared with all of us: I'm about to start coding new HTML Form Creation Validation module for PHP. I've designed most featrue needed. Before I start, I would like to know if ASP/Java has similar feature and what they do. I think CFML (Cold Fusion) would be the one to look at, as that has a very convenient form module and is IMO also the same userbase / momentum: ie - just need a form and basic validation. What I would definetely put in, is 'multi-submit' protection (would require sessions). Could be way off though - I don't know what you've designed :-) http://livedocs.macromedia.com/cfmxdocs/CFML_Reference/Tags-pt015.jsp#2453276 Met vriendelijke groeten / With kind regards, IDG.nl Melvyn Sopacua Webmaster -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Re: [Zend Engine 2] RE: [PHP-DEV] oo != php
There are two reasons we repeat the 'PHP is not Java mantra': (a) Many of those requesting these changes actually DO want to see PHP as a Java with PHPish syntax. Anyone wanting PHP to be a simple or more flexable Java is barking up the wrong tree... in fact all of the people I know who Im lobbying better OO functionality in PHP for know Java and know PHP - and use both where each is best. What we are requesting is that PHP expands its OO capabilities - not change the way it does things, not do anything outlandish or stolen from another language. Think about it - all it would be is like adding an extra gear to a car. Wouldnt change the concept, the design or the idea of the car... not the make nor model... it would however give it added depth and use. eg: simple db-based shopping cart web site? use PHP... complex internet backing system? use Java. Easy! (b) Java is (so far) the best implemented OO language out there that's actually being used. It symbolizes the extreme OO world, if you will. Agreed - but that doesnt mean that the people on this list are assosiating more OO in PHP as being one step closer to PHP being PHP-Java. If I wanted Java's OO implementation in PHP, Id use Java. I dont - I want OO implementation (not even to the extremeness of Java) put in PHP. Im not even sure where the issue lies of taking the step - other than where is this heading in the long run. Is this all that much of an issue to implement MI, Pub/Pri/Prot methods/vars, possibly interfaces? Not to be Java, but to extend PHP... all those would help PHP as a *web based language* (hell it would help any language IMHO - given that its optional and not enforced). Isnt that the long term goal of PHP (or ZE)? To provide a most powerful backend for scripting languages, and to provide a RAD tool for creating websites (or web based systems) quickly, easily and powerfully? All the above would take a step closer to both those goals. Unless Im missing the mark - for which I appologise. The PHP Group as a whole seems to have mixed feelings on this issue - could there be some form of concensus so that I (and many others on this list) can work out if the requested extra functionality is either ruled out, in for PHP version x, or undecided and under continued debate. I think all sides have made their opinions crystal clear. Appologises for any rambling - its 2:40am heh... thanks for reading :) -- Dan Hardiker [[EMAIL PROTECTED]] ADAM Software Systems Engineer First Creative Ltd -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] What kind of option ASP/Java has for this?
Melvyn Sopacua wrote: At 02:43 8-6-2002, Yasuo Ohgaki shared with all of us: I'm about to start coding new HTML Form Creation Validation module for PHP. I've designed most featrue needed. Before I start, I would like to know if ASP/Java has similar feature and what they do. I think CFML (Cold Fusion) would be the one to look at, as that has a very convenient form module and is IMO also the same userbase / momentum: ie - just need a form and basic validation. What I would definetely put in, is 'multi-submit' protection (would require sessions). Thank you for the info. I'll take a look what kind of options ColdFusion has. Anyway, multi-submit prevention will be in the module using message digest validation and database. I'll use PostgreSQL as the backend database to provide features like multi-submit prevention. Therefore, it works w/o session, but it requires PostgreSQL. You know I use PostgreSQL :) The idea is based on my script http://www.zend.com/codex.php?id=626single=1 and CGISPAWN mechanism mentioned in MSDN site. Feature will be similar to PEAR's OOH Form. It also supports multi form support for wizard like interface. (Cache control in the future, too) Comments and more info about other web developement tools are welcome. -- Yasuo Ohgaki -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: [Zend Engine 2] Re: [PHP-DEV] Re: [Zend Engine 2] RE:[PHP-DEV] oo != php
eg: simple db-based shopping cart web site? use PHP... complex internet backing system? use Java. Easy! Use PHP! Easier. Look, I've built hideously complex things with PHP - commerce systems that do stream encryption on a per-field basis, complex interconnected process stuff, large APIs, everything. PHP is _already_ serious, it is being used for large, complex applications with deep APIs. Is this all that much of an issue to implement MI, Pub/Pri/Prot methods/vars, possibly interfaces? Not to be Java, but to extend PHP... all those would help PHP as a *web based language* (hell it would help any language IMHO - given that its optional and not enforced). Isnt that the long term goal of PHP (or ZE)? To provide a most powerful backend for scripting languages, and to provide a RAD tool for creating websites (or web based systems) quickly, easily and powerfully? All the above would take a step closer to both those goals. Well said. I think the core of everyone's argument is that we're not asking for java, we don't want java. We're asking for some incremental _additions_ to PHP OO that do not break BC, that will help us work with more advanced PHP OO systems. That's it. I don't want to see PHP turn into java because I dislike java intensely. I like the freedom given to me by PHP. Unless Im missing the mark - for which I appologise. The PHP Group as a whole seems to have mixed feelings on this issue - could there be some form of concensus so that I (and many others on this list) can work out if the requested extra functionality is either ruled out, in for PHP version x, or undecided and under continued debate. I think all sides have made their opinions crystal clear. yes, I think some sort of clear vision of what you guys would like to see happen over the next year would help us all and likely end this thread. best, -alex -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Re: [Zend Engine 2] RE: [PHP-DEV] oo != php
Dan Hardiker [EMAIL PROTECTED] wrote: Unless Im missing the mark - for which I appologise. The PHP Group as a whole seems to have mixed feelings on this issue - could there be some form of concensus so that I (and many others on this list) can work out if the requested extra functionality is either ruled out, in for PHP version x, or undecided and under continued debate. I think all sides have made their opinions crystal clear. 'The PHP Group' does not control the vision for what will go into php version x. people actually willing to pitch in and do the work do. 'The PHP Group' has absolutely zero leverage to get anybody to do any work. i think people who think that 'The PHP Group' is some grand leadership council that is plotting the technical direction of the php project would be sorely disappointed if they were to read all of the mail traded over [EMAIL PROTECTED] over the last year. the vast majority of it is dealing with sysadmin stuff, and there was some discussion around adopting smarty as a subproject within the php project (and how we want to handle future projects that ask for that consideration). i can't remember the last time we've had a technical discussion of any real substance on [EMAIL PROTECTED] we've basically moved all of those discussions here. i think the resistance that people think they feel with regard to things like making more php have more oo features has more to do with some developers not willing to be told what features to implement than a notion of those features being a terrible idea. (some of us may think some are a bad idea, but working code can be very persuasive. lots of arguing and handwaving isn't.) jim -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] failed php build on OSX: libexpat.la bad magic number (not aMach-O file) directory name (/lib) does not exist
hi all, a build of php-latest (php4-200206071800) on OSX Server 10.1.4 with: ./configure --enable-shared --enable-static --prefix=/usr/local/php4 --with-layout=PHP --with-apxs2=/usr/local/apache2/sbin/apxs --with-config-file-path=/private/etc/php4/ --mandir=/usr/local/man --localstatedir=/private/var/php4 --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --with-expat-dir=/usr/local/expat --with-mysql=/usr/local/mysql --with-openssl --with-imap-ssl --with-mcrypt --with-mhash=/usr/local --with-kerberos --with-imap=/usr/local/imap --enable-mailparse --enable-magic-quotes --enable-ftp --enable-force-cgi-redirect --enable-discard-path --enable-inline-optimization --with-pear --with-zlib --enable-calendar --disable-safe-mode --with-tsrm-pthreads fails /usr/bin/ld: warning -L: directory name (/lib) does not exist /usr/bin/ld: /usr/local/expat/lib/libexpat.la bad magic number (not a Mach-O file) as follows: .o Zend/zend_qsort.o Zend/zend_multibyte.o Zend/zend_execute.o sapi/apache2filter/sapi_apache2.o sapi/apache2filter/apache_config.o sapi/apache2filter/php_functions.o main/internal_functions.o -lcrypto -lssl -lc-client -lexpat -lmysqlclient -lmhash -lmcrypt -lltdl -lz -lssl -lcrypto -lbind -lm -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -ldl -o libs/libphp4.bundle cp libs/libphp4.bundle libs/libphp4.so /usr/bin/ld: warning -L: directory name (/lib) does not exist /usr/bin/ld: /usr/local/expat/lib/libexpat.la bad magic number (not a Mach-O file) /usr/bin/ld: warning multiple definitions of symbol _pcre_free ext/pcre/pcrelib/pcre.o definition of _pcre_free in section (__DATA,__data) /usr/local/apache2/sbin/httpd definition of _pcre_free /usr/bin/ld: warning multiple definitions of symbol _pcre_fullinfo ext/pcre/pcrelib/pcre.o definition of _pcre_fullinfo in section (__TEXT,__text) /usr/local/apache2/sbin/httpd definition of _pcre_fullinfo /usr/bin/ld: warning multiple definitions of symbol _pcre_malloc ext/pcre/pcrelib/pcre.o definition of _pcre_malloc in section (__DATA,__data) /usr/local/apache2/sbin/httpd definition of _pcre_malloc /usr/bin/ld: warning multiple definitions of symbol _regcomp /usr/local/apache2/sbin/httpd definition of _regcomp /usr/lib/libm.dylib(regcomp.o) definition of _regcomp /usr/bin/ld: warning multiple definitions of symbol _regexec /usr/local/apache2/sbin/httpd definition of _regexec /usr/lib/libm.dylib(regexec.o) definition of _regexec /usr/bin/ld: warning multiple definitions of symbol _regfree /usr/local/apache2/sbin/httpd definition of _regfree /usr/lib/libm.dylib(regfree.o) definition of _regfree make: *** [libs/libphp4.bundle] Error 1 [root@server] i haven't found why make is complaining about /lib (yet) .. unfortunately, there is *no* /lib on OSX . as for the libexpat error . i'm stumped expat built just fine, and is used by a number of other progrs successfully .. any thoughts/suggestions on either would be much appreciated! fyi, details of my environment are doc'd on my web-page, below . cheers, richard -- R Blake blakers at mac.com http://homepage.mac.com/blakers --
[PHP-DEV] Re: PHP profiling results under 2.0.37 Re: Performance of Apache2.0 Filter
In case it's helpful to the PHP developers, here are some more performance problems that I found by running a quick system call profile of PHP-4.2.1 within Apache-2.0.37-dev: * php_request_shutdown() calls shutdown_memory_manager(), which does a large number of calls to free() per request. If there's any way to get the PHP allocator to use an APR pool, that should help speed things up a lot. (The mallocs and frees are going to be especially problematic within multithreaded MPMs.) * The lex_scan() function consumed a lot of CPU time, even though in my test case (a file with no actual embedded scripting code) only the loop right after the yy_match label ever got executed. --Brian -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] Re: PHP profiling results under 2.0.37 Re: Performance of Apache2.0 Filter
I wrote: a quick system call profile of PHP-4.2.1 within oops, s/system/function/ --Brian -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Re: [Zend Engine 2] RE: [PHP-DEV] oo != php
At 02:40 08/06/2002 +0100, you wrote: There are two reasons we repeat the 'PHP is not Java mantra': (a) Many of those requesting these changes actually DO want to see PHP as a Java with PHPish syntax. Anyone wanting PHP to be a simple or more flexable Java is barking up the wrong tree... in fact all of the people I know who Im lobbying better OO functionality in PHP for know Java and know PHP - and use both where each is best. What we are requesting is that PHP expands its OO capabilities - not change the way it does things, not do anything outlandish or stolen from another language. Think about it - all it would be is like adding an extra gear to a car. Wouldnt change the concept, the design or the idea of the car... not the make nor model... it would however give it added depth and use. I agree completely, for what its worth ;) I have a question about this whole debate. If PHP's core goal is to provide easy quick development for 'dynamic pages' , then why is there no built-in template engine? Having this would solve many of the niggling problems that are associated with current PHP-written (OO) template engines. Is it that there is no desire for such an extension? Mike -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php