Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2
Hello Jani, David has a point here. So first of all we should move getopt implementation out of CLI/CGI and into main. Could you do that first Jani? marcus Monday, August 6, 2007, 3:57:26 PM, you wrote: > Hi internals, > so based on a discussion of php.pecl we thought about using the php_getopt > for the PHP_FUNCTION(getopt) instead of the system provided getopt. Here > is the patch for that. Hopefully someone is reviewing and commiting the > patch as i don't have karma. > It addes main/getopt.c main/php_getopt.h to the build system and uses the > php_getopt function in the ext/standard/basic_functions.c. Furthermore it > removes all HAVE_GETOPT and HARTMUT_0 switches. it also enable longopts > for both win and linux in the form > > $opt = getopt("a", array("param:", "param2")); > Where ":" in the longopts marks that the parameter takes an argument. > The main/getopt.c and main/php_getopt.h is in fact taken from > sapi/cli/getopt.c and sapi/cli/php_getopt.h but is slightly modified. > http://experimentalworks.net/~dsp/getopt.patch.tar.gz > It also runs on windows. > To apply the patch: > 1) remove >sapi/cli/getopt.c sapi/cli/php_getopt.h >sapi/cgi/getopt.c sapi/cgi/php_getopt.h > 2) add main/getopt.c and main/php_getopt.h frm the archive > 3) apply the patch. Best regards, Marcus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2
Yes, I know about this. I was wondering about this thing long time ago..just never got around doing anything about it.. :D But let's wait for PHP 5.3 branch to get opened first. --Jani On Tue, 2007-08-07 at 14:22 +0200, Marcus Boerger wrote: > Hello Jani, > > David has a point here. So first of all we should move getopt > implementation out of CLI/CGI and into main. Could you do that > first Jani? > > marcus > > Monday, August 6, 2007, 3:57:26 PM, you wrote: > > > Hi internals, > > > so based on a discussion of php.pecl we thought about using the php_getopt > > for the PHP_FUNCTION(getopt) instead of the system provided getopt. Here > > is the patch for that. Hopefully someone is reviewing and commiting the > > patch as i don't have karma. > > > It addes main/getopt.c main/php_getopt.h to the build system and uses the > > php_getopt function in the ext/standard/basic_functions.c. Furthermore it > > removes all HAVE_GETOPT and HARTMUT_0 switches. it also enable longopts > > for both win and linux in the form > > > > $opt = getopt("a", array("param:", "param2")); > > > Where ":" in the longopts marks that the parameter takes an argument. > > > The main/getopt.c and main/php_getopt.h is in fact taken from > > sapi/cli/getopt.c and sapi/cli/php_getopt.h but is slightly modified. > > > http://experimentalworks.net/~dsp/getopt.patch.tar.gz > > > It also runs on windows. > > > To apply the patch: > > 1) remove > >sapi/cli/getopt.c sapi/cli/php_getopt.h > >sapi/cgi/getopt.c sapi/cgi/php_getopt.h > > > 2) add main/getopt.c and main/php_getopt.h frm the archive > > 3) apply the patch. > > > > > Best regards, > Marcus > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2
David, On Mon, 2007-08-06 at 09:57 -0400, David Soria Parra wrote: > Hi internals, > > so based on a discussion of php.pecl we thought about using the php_getopt > for the PHP_FUNCTION(getopt) instead of the system provided getopt. Here > is the patch for that. Hopefully someone is reviewing and commiting the > patch as i don't have karma. The idea is good imo, but there are a few things we have to do: - We need more tests, as far as I saw using grep we just have a single testcase for getopt() which is certainly not enough when replacing the implementation. - The current implementation is not thread-safe, I don't know about the glibc implementation but if we use our own implementation for PHP's getopt function that should be threadsafe. - If you move php_getopt to main you have to mark it as PHPAPI so the SAPIs can use it. Maybe there's more, didn't do a deeper review of the patch, yet, since I'd like to wait a) until Jani moved the files and b) we have more tests :-) johannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2
Thread safe for CGI and CLI ? :) Or do you find the function useful outside those SAPIs? --Jani Johannes Schlüter kirjoitti: David, On Mon, 2007-08-06 at 09:57 -0400, David Soria Parra wrote: Hi internals, so based on a discussion of php.pecl we thought about using the php_getopt for the PHP_FUNCTION(getopt) instead of the system provided getopt. Here is the patch for that. Hopefully someone is reviewing and commiting the patch as i don't have karma. The idea is good imo, but there are a few things we have to do: - We need more tests, as far as I saw using grep we just have a single testcase for getopt() which is certainly not enough when replacing the implementation. - The current implementation is not thread-safe, I don't know about the glibc implementation but if we use our own implementation for PHP's getopt function that should be threadsafe. - If you move php_getopt to main you have to mark it as PHPAPI so the SAPIs can use it. Maybe there's more, didn't do a deeper review of the patch, yet, since I'd like to wait a) until Jani moved the files and b) we have more tests :-) johannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2
On Tue, 2007-08-07 at 19:13 +0300, Jani Taskinen wrote: > Thread safe for CGI and CLI ? :) > Or do you find the function useful outside those SAPIs? Well David's plan is to use the implementation for PHP-level getopt() and I can imagine doing crazy stuff, so if we can make it thread-safe in a good way we should do that - I've seen to many people doing too crazy stuff... Of course that's not high priority... johannes > --Jani > > > Johannes Schlüter kirjoitti: > > David, > > > > On Mon, 2007-08-06 at 09:57 -0400, David Soria Parra wrote: > >> Hi internals, > >> > >> so based on a discussion of php.pecl we thought about using the php_getopt > >> for the PHP_FUNCTION(getopt) instead of the system provided getopt. Here > >> is the patch for that. Hopefully someone is reviewing and commiting the > >> patch as i don't have karma. > > > > The idea is good imo, but there are a few things we have to do: > > > > - We need more tests, as far as I saw using grep we just have a single > > testcase for getopt() which is certainly not enough when replacing the > > implementation. > > > > - The current implementation is not thread-safe, I don't know about the > > glibc implementation but if we use our own implementation for > > PHP's getopt function that should be threadsafe. > > > > - If you move php_getopt to main you have to mark it as PHPAPI so the > > SAPIs can use it. > > > > Maybe there's more, didn't do a deeper review of the patch, yet, since > > I'd like to wait a) until Jani moved the files and b) we have more > > tests :-) > > > > johannes > > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2
David has a point here. So first of all we should move getopt implementation out of CLI/CGI and into main. Could you do that first Jani? Why one would need getopt outside of cgi/cli? I.e. where would these options come from? -- Stanislav Malyshev, Zend Software Architect [EMAIL PROTECTED] http://www.zend.com/ (408)253-8829 MSN: [EMAIL PROTECTED] -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2
> Why one would need getopt outside of cgi/cli? I.e. where would these > options come from? initially the idea was to use getopt on windows machines. After proposing my patch which just includes the NetBSD getopt(), there was a recommandation in php.pecl to use the php_getopt instead of the system provided getopt to implement the PHP_FUNCTION(getopt). This imho makes sense. We got windows support as well as long parameter support. As we use it in ext/standard/basic_functions.c we have to move the getopt.c out of sapi/cli. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2
On Tue, 2007-08-07 at 13:02 -0700, Stanislav Malyshev wrote: > > David has a point here. So first of all we should move getopt > > implementation out of CLI/CGI and into main. Could you do that > > first Jani? > > Why one would need getopt outside of cgi/cli? I.e. where would these > options come from? Having the file in CLI as well as in CGI isn't good for maintaining it, therefore we should move it imo. johannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2
Patch applied to HEAD / PHP_5_3. --Jani On Mon, 2007-08-06 at 09:57 -0400, David Soria Parra wrote: > Hi internals, > > so based on a discussion of php.pecl we thought about using the php_getopt > for the PHP_FUNCTION(getopt) instead of the system provided getopt. Here > is the patch for that. Hopefully someone is reviewing and commiting the > patch as i don't have karma. > > It addes main/getopt.c main/php_getopt.h to the build system and uses the > php_getopt function in the ext/standard/basic_functions.c. Furthermore it > removes all HAVE_GETOPT and HARTMUT_0 switches. it also enable longopts > for both win and linux in the form > > $opt = getopt("a", array("param:", "param2")); > > Where ":" in the longopts marks that the parameter takes an argument. > > The main/getopt.c and main/php_getopt.h is in fact taken from > sapi/cli/getopt.c and sapi/cli/php_getopt.h but is slightly modified. > > http://experimentalworks.net/~dsp/getopt.patch.tar.gz > > It also runs on windows. > > To apply the patch: > 1) remove >sapi/cli/getopt.c sapi/cli/php_getopt.h >sapi/cgi/getopt.c sapi/cgi/php_getopt.h > > 2) add main/getopt.c and main/php_getopt.h frm the archive > 3) apply the patch. > -- Patches/Donations: http://pecl.php.net/~jani/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php