Re: [PHP-DEV] [PATCH] Getopt with longopts and windows support - part 2

2007-08-07 Thread Marcus Boerger
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

2007-08-07 Thread Jani Taskinen
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

2007-08-07 Thread Johannes Schlüter
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

2007-08-07 Thread Jani Taskinen

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

2007-08-07 Thread Johannes Schlüter
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

2007-08-07 Thread Stanislav Malyshev

  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

2007-08-07 Thread David Soria Parra
> 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

2007-08-07 Thread Johannes Schlüter
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

2007-10-01 Thread Jani Taskinen
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