Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Rasmus Lerdorf
On 8/22/14, 10:46 PM, Pierre Joye wrote:
 In other words, it would be nice to see more developers actually
 porting extensions to realize the amount of changes are introduced by
 NG and by the int64. The sooner is in order of magnitude must larger.
 It is not a bad comment, only a fact. Given that, before we choose to
 say that it is fine for one part to change APIs/Macros signatures or
 names and not for another, we should really get a better view of what
 has actually changed. And how we can deal with our old habit to
 maintain one tree for many major PHP versions. For many extensions, I
 do not think it will be possible, or with unreadable code with 2-3x
 more #ifdef all over the place.

I knew you would make this comparison. I am willing to suffer porting
pain if it gets me a 20% performance boost. I am completely unwilling to
suffer any porting pain because Pierre has decided he doesn't like the
names of some macros.

-Rasmus



signature.asc
Description: OpenPGP digital signature


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Pierre Joye
On Sat, Aug 23, 2014 at 8:05 AM, Rasmus Lerdorf ras...@lerdorf.com wrote:
 On 8/22/14, 10:46 PM, Pierre Joye wrote:
 In other words, it would be nice to see more developers actually
 porting extensions to realize the amount of changes are introduced by
 NG and by the int64. The sooner is in order of magnitude must larger.
 It is not a bad comment, only a fact. Given that, before we choose to
 say that it is fine for one part to change APIs/Macros signatures or
 names and not for another, we should really get a better view of what
 has actually changed. And how we can deal with our old habit to
 maintain one tree for many major PHP versions. For many extensions, I
 do not think it will be possible, or with unreadable code with 2-3x
 more #ifdef all over the place.

 I knew you would make this comparison. I am willing to suffer porting
 pain if it gets me a 20% performance boost. I am completely unwilling to
 suffer any porting pain because Pierre has decided he doesn't like the
 names of some macros.

Sorry Rasmus, this reply is irrelevant or off base. What in my reply
makes you tell that it is about my taste? It is the exact same
argument you used and about showing that it is not possible to do what
you said for many cases.

You also totally ignore other valid points, raised by other developers
(working on porting exts, like Remi, f.e.). This is something we have
to discuss and solve, no matter the outcome of this discussion.

Anyway, thanks for this constructive reply.


Cheers,
-- 
Pierre

@pierrejoye | http://www.libgd.org

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Rasmus Lerdorf
On 8/22/14, 11:09 PM, Pierre Joye wrote:
 On Sat, Aug 23, 2014 at 8:05 AM, Rasmus Lerdorf ras...@lerdorf.com wrote:
 On 8/22/14, 10:46 PM, Pierre Joye wrote:
 In other words, it would be nice to see more developers actually
 porting extensions to realize the amount of changes are introduced by
 NG and by the int64. The sooner is in order of magnitude must larger.
 It is not a bad comment, only a fact. Given that, before we choose to
 say that it is fine for one part to change APIs/Macros signatures or
 names and not for another, we should really get a better view of what
 has actually changed. And how we can deal with our old habit to
 maintain one tree for many major PHP versions. For many extensions, I
 do not think it will be possible, or with unreadable code with 2-3x
 more #ifdef all over the place.

 I knew you would make this comparison. I am willing to suffer porting
 pain if it gets me a 20% performance boost. I am completely unwilling to
 suffer any porting pain because Pierre has decided he doesn't like the
 names of some macros.
 
 Sorry Rasmus, this reply is irrelevant or off base. What in my reply
 makes you tell that it is about my taste? 

There is no technical reason to change IS_LONG to IS_INT along with the
others in that category. It is purely a
taste/purity/questionable-consistency thing and doesn't need to be done
to solve any real technical problem.

-Rasmus



signature.asc
Description: OpenPGP digital signature


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Pierre Joye
On Sat, Aug 23, 2014 at 8:21 AM, Rasmus Lerdorf ras...@lerdorf.com wrote:
 On 8/22/14, 11:09 PM, Pierre Joye wrote:
 On Sat, Aug 23, 2014 at 8:05 AM, Rasmus Lerdorf ras...@lerdorf.com wrote:
 On 8/22/14, 10:46 PM, Pierre Joye wrote:
 In other words, it would be nice to see more developers actually
 porting extensions to realize the amount of changes are introduced by
 NG and by the int64. The sooner is in order of magnitude must larger.
 It is not a bad comment, only a fact. Given that, before we choose to
 say that it is fine for one part to change APIs/Macros signatures or
 names and not for another, we should really get a better view of what
 has actually changed. And how we can deal with our old habit to
 maintain one tree for many major PHP versions. For many extensions, I
 do not think it will be possible, or with unreadable code with 2-3x
 more #ifdef all over the place.

 I knew you would make this comparison. I am willing to suffer porting
 pain if it gets me a 20% performance boost. I am completely unwilling to
 suffer any porting pain because Pierre has decided he doesn't like the
 names of some macros.

 Sorry Rasmus, this reply is irrelevant or off base. What in my reply
 makes you tell that it is about my taste?

 There is no technical reason to change IS_LONG to IS_INT along with the
 others in that category. It is purely a
 taste/purity/questionable-consistency thing and doesn't need to be done
 to solve any real technical problem.

There is. Long is not used anymore. So we can argue about that but
there is a change and it should be reflected imo.

You still totally ignore any of my other points, which are even more
important in regard to maintaining one code tree for 5.x and 7.x,
which is very likely not possible in a sane way for many extensions.


-- 
Pierre

@pierrejoye | http://www.libgd.org

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Dmitry Stogov
I think it's ok to keep zend_off_t and zend_size_t as is.

Thanks. Dmitry,


On Fri, Aug 22, 2014 at 4:09 PM, Anatol Belski anatol@belski.net
wrote:

 Hi Nikita,

 On Fri, August 22, 2014 13:16, Nikita Popov wrote:
  Hi internals!
 
 
  Today the int64 RFC has been merged, despite objections regarding the
  naming changes it introduces.
 
  As we were not given a chance to resolve this issue before the merge, a
  short proposal has been created, which aims to revert all unnecessary
  naming changes and instead use type names that are consistent with the
  existing code base and expectations:
 
  https://wiki.php.net/rfc/better_type_names_for_int64
 
 
  Due to the unexpected merge on short notice, with no chance for
  discussion, this issue is blocking a number of other patches. As such I
  ask if we can move through this RFC with a shortened cycle. I would not
  appreciate having to wait three weeks to have a workable codebase again.
 
  Nikita
 
 to be complete, the RFC probably should take in account several new
 identifiers which came in (zend_off_t, zend_stat_t and co.). As their
 naming scheme is probably somewhat different. I've just documented those
 http://git.php.net/?p=php-src.git;a=blob;f=UPGRADING.INTERNALS and
 continue.

 Regards

 Anatol



 --
 PHP Internals - PHP Runtime Development Mailing List
 To unsubscribe, visit: http://www.php.net/unsub.php




Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Dmitry Stogov
100% agree with RFC.
It would be great if technical improvements wouldn't be messed with this
renaming :(

Thanks. Dmitry,




On Fri, Aug 22, 2014 at 3:16 PM, Nikita Popov nikita@gmail.com wrote:

 Hi internals!

 Today the int64 RFC has been merged, despite objections regarding the
 naming changes it introduces.

 As we were not given a chance to resolve this issue before the merge, a
 short proposal has been created, which aims to revert all unnecessary
 naming changes and instead use type names that are consistent with the
 existing code base and expectations:

 https://wiki.php.net/rfc/better_type_names_for_int64

 Due to the unexpected merge on short notice, with no chance for discussion,
 this issue is blocking a number of other patches. As such I ask if we can
 move through this RFC with a shortened cycle. I would not appreciate having
 to wait three weeks to have a workable codebase again.

 Nikita



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Pierre Joye
On Aug 23, 2014 11:55 AM, Dmitry Stogov dmi...@zend.com wrote:

 100% agree with RFC.
 It would be great if technical improvements wouldn't be messed with this
 renaming :(

You realize that 80%+ of the zval macros has to be changed as well right?
And not only the name but the argument and their content.

I won't battle for this naming, but seriously the arguments listed on this
thread are amusing...

Cheers,
Pierre


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Andrea Faulds

On 23 Aug 2014, at 10:43, Dmitry Stogov dmi...@zend.com wrote:

 I think it's ok to keep zend_off_t and zend_size_t as is.

Could someone enlighten me as to why we need zend_size_t? Isn’t that just a 
typedef for size_t? It’s not like it’ll vary on different platforms, doing so 
would defeat the purpose of using size_t in the first place.
--
Andrea Faulds
http://ajf.me/





--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Pierre Joye
On Aug 23, 2014 4:34 PM, Andrea Faulds a...@ajf.me wrote:


 On 23 Aug 2014, at 10:43, Dmitry Stogov dmi...@zend.com wrote:

  I think it's ok to keep zend_off_t and zend_size_t as is.

 Could someone enlighten me as to why we need zend_size_t? Isn’t that just
a typedef for size_t? It’s not like it’ll vary on different platforms,
doing so would defeat the purpose of using size_t in the first place.

Was not desired back then as it changed too much. So it simply matched
what already exists for years.

To me we should just use size_t and uint32_t for zend_uint (solving the
zend_uint vs zend_into_t).

Cheers,
Pierre


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Andrea Faulds

On 23 Aug 2014, at 16:00, Pierre Joye pierre@gmail.com wrote:

 uint32_t for zend_uint (solving the
 zend_uint vs zend_into_t).

uint32_t isn’t universally available. MSVC 2010 does not have it, for example.
--
Andrea Faulds
http://ajf.me/





--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Pierre Joye
On Aug 23, 2014 5:02 PM, Andrea Faulds a...@ajf.me wrote:


 On 23 Aug 2014, at 16:00, Pierre Joye pierre@gmail.com wrote:

  uint32_t for zend_uint (solving the
  zend_uint vs zend_into_t).

 uint32_t isn’t universally available. MSVC 2010 does not have it, for
example.

It would be nice to at least read the code before commenting in this thread.

We have types detections in place, since long for windows, and 5.4 or 5.5
for other platforms. It is only matter to use the php_stdint file in the
engine.


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Rasmus Lerdorf
On 8/22/14, 11:25 PM, Pierre Joye wrote:
 There is. Long is not used anymore. So we can argue about that but
 there is a change and it should be reflected imo.
 
 You still totally ignore any of my other points, which are even more
 important in regard to maintaining one code tree for 5.x and 7.x,
 which is very likely not possible in a sane way for many extensions.

I ignored it because it is irrelevant. The fact that many related things
are changing does not justify piling on more changes. Every change
should have a very solid technical reason behind it. Long is not used
anymore is not a solid technical reason. The code will compile
perfectly fine with it being IS_LONG. Also, these are userspace-facing
in the sense that as an extension author we are dealing with PHP's type
system consisting of lval, dval, string, array, object and resource. How
exactly an lval or IS_LONG is implemented at the C level on any given
platform is an implementation detail and could change, but we are still
providing an lval to userspace. As C developers, extension authors are
more than capable of checking the actual macro definition if they want
to know the details.

I'd also appreciate if you would drop your toxicity level a few notches
in your emails to the list, irc and twitter.

Thanks

-Rasmus



signature.asc
Description: OpenPGP digital signature


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Pierre Joye
On Sat, Aug 23, 2014 at 6:40 PM, Rasmus Lerdorf ras...@lerdorf.com wrote:
 On 8/22/14, 11:25 PM, Pierre Joye wrote:
 There is. Long is not used anymore. So we can argue about that but
 there is a change and it should be reflected imo.

 You still totally ignore any of my other points, which are even more
 important in regard to maintaining one code tree for 5.x and 7.x,
 which is very likely not possible in a sane way for many extensions.

 I ignored it because it is irrelevant.

These points are not irrelevant:

- zend_uint should go away, uint32_t should be used instead
- zend_int_t could remain. it matches the respective, architecture
specific int32_t
  and int64_t being used behind it. _t standing for _typed just like
in the standard
  types intXX_t

And we can add:

- zend_size_t can be dropped in favor of size_t

And dangerous APIs signature changes are not irrelevant either. And
many of them are not related to performance at all but a choice made
at the implementation time. So the solid technical reason you mention
later does not apply here.

On the same area, I would also prefer not to use STR_* defines but
directly called zend_string_*, it will drastically reduce errors
during porting or later.

 The fact that many related things
 are changing does not justify piling on more changes.

RIght.

  Every change
 should have a very solid technical reason behind it. Long is not used
 anymore is not a solid technical reason.

Consistent APIs, in my book, is a solid technical reason.

 The code will compile
 perfectly fine with it being IS_LONG. Also, these are userspace-facing
 in the sense that as an extension author we are dealing with PHP's type
 system consisting of lval, dval, string, array, object and resource. How
 exactly an lval or IS_LONG is implemented at the C level on any given
 platform is an implementation detail and could change, but we are still
 providing an lval to userspace.

Extensions write should not use the zend_value member directly but use
the provided APIs or macros, which is called Z_IVAL btw. Want to
change to Z_LVAL? WIll be more consistent.

 As C developers, extension authors are
 more than capable of checking the actual macro definition if they want
 to know the details.

I have not doubt about the capabilities of the extension developers,
but improving APIs quality reduces the # of errors.

 I'd also appreciate if you would drop your toxicity level a few notches
 in your emails to the list, irc and twitter.

I do not agree with your definition, but as long as there are double
standards and related behaviors, I do not see how things can improve.
The way this RFC has been handled is a shame. If NG would have got as
much code reviews, got blocked twice while being accepted, etc. I do
not think Dmitry or Laruence would be that happy at this point. And
seriously, this is a pretty bad behavior. It is also not the 1st time
it happens. Only difference is that I do not care much when something
happens, I know each of you long enough, but other simply left.
Anyway, it does not help anyone to argue about that over and over, I
can agree with you on that.

Cheers,
-- 
Pierre

@pierrejoye | http://www.libgd.org

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Kris Craig
On Aug 23, 2014 12:10 PM, Pierre Joye pierre@gmail.com wrote:

 On Sat, Aug 23, 2014 at 6:40 PM, Rasmus Lerdorf ras...@lerdorf.com
wrote:
  On 8/22/14, 11:25 PM, Pierre Joye wrote:
  There is. Long is not used anymore. So we can argue about that but
  there is a change and it should be reflected imo.
 
  You still totally ignore any of my other points, which are even more
  important in regard to maintaining one code tree for 5.x and 7.x,
  which is very likely not possible in a sane way for many extensions.
 
  I ignored it because it is irrelevant.

 These points are not irrelevant:

 - zend_uint should go away, uint32_t should be used instead
 - zend_int_t could remain. it matches the respective, architecture
 specific int32_t
   and int64_t being used behind it. _t standing for _typed just like
 in the standard
   types intXX_t

 And we can add:

 - zend_size_t can be dropped in favor of size_t

 And dangerous APIs signature changes are not irrelevant either. And
 many of them are not related to performance at all but a choice made
 at the implementation time. So the solid technical reason you mention
 later does not apply here.

 On the same area, I would also prefer not to use STR_* defines but
 directly called zend_string_*, it will drastically reduce errors
 during porting or later.

  The fact that many related things
  are changing does not justify piling on more changes.

 RIght.

   Every change
  should have a very solid technical reason behind it. Long is not used
  anymore is not a solid technical reason.

 Consistent APIs, in my book, is a solid technical reason.

  The code will compile
  perfectly fine with it being IS_LONG. Also, these are userspace-facing
  in the sense that as an extension author we are dealing with PHP's type
  system consisting of lval, dval, string, array, object and resource. How
  exactly an lval or IS_LONG is implemented at the C level on any given
  platform is an implementation detail and could change, but we are still
  providing an lval to userspace.

 Extensions write should not use the zend_value member directly but use
 the provided APIs or macros, which is called Z_IVAL btw. Want to
 change to Z_LVAL? WIll be more consistent.

  As C developers, extension authors are
  more than capable of checking the actual macro definition if they want
  to know the details.

 I have not doubt about the capabilities of the extension developers,
 but improving APIs quality reduces the # of errors.

  I'd also appreciate if you would drop your toxicity level a few notches
  in your emails to the list, irc and twitter.

 I do not agree with your definition, but as long as there are double
 standards and related behaviors, I do not see how things can improve.
 The way this RFC has been handled is a shame. If NG would have got as
 much code reviews, got blocked twice while being accepted, etc. I do
 not think Dmitry or Laruence would be that happy at this point. And
 seriously, this is a pretty bad behavior. It is also not the 1st time
 it happens. Only difference is that I do not care much when something
 happens, I know each of you long enough, but other simply left.
 Anyway, it does not help anyone to argue about that over and over, I
 can agree with you on that.

 Cheers,
 --
 Pierre

 @pierrejoye | http://www.libgd.org

 --
 PHP Internals - PHP Runtime Development Mailing List
 To unsubscribe, visit: http://www.php.net/unsub.php


I have a quick question for the people debating this issue:  Aside from the
dispute over whether or not it's necessary / unimportant, are there any
pressing reasons *not* to implement the changes that Pierre is advocating?
I.e. would it break anything, waste a large amount of time, make the code
harder to maintain, etc?  Or is it just that you don't think it's worth
doing?

--Kris


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Andrea Faulds

On 23 Aug 2014, at 20:19, Kris Craig kris.cr...@gmail.com wrote:

 I have a quick question for the people debating this issue:  Aside from the
 dispute over whether or not it's necessary / unimportant, are there any
 pressing reasons *not* to implement the changes that Pierre is advocating?
 I.e. would it break anything, waste a large amount of time, make the code
 harder to maintain, etc?  Or is it just that you don't think it's worth
 doing?

I can think of two:

1. It breaks most extensions out there, perhaps unnecessarily.

2. If bigints are implemented, we’d have to rename everything again.

--
Andrea Faulds
http://ajf.me/





--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Pierre Joye
On Sat, Aug 23, 2014 at 9:29 PM, Andrea Faulds a...@ajf.me wrote:

 On 23 Aug 2014, at 20:19, Kris Craig kris.cr...@gmail.com wrote:

 I have a quick question for the people debating this issue:  Aside from the
 dispute over whether or not it's necessary / unimportant, are there any
 pressing reasons *not* to implement the changes that Pierre is advocating?
 I.e. would it break anything, waste a large amount of time, make the code
 harder to maintain, etc?  Or is it just that you don't think it's worth
 doing?

 I can think of two:

 1. It breaks most extensions out there, perhaps unnecessarily.

Please try to port one. That will solve this never ending ping pong
game. Extensions are broken per se with ng, almost every zval macros
usage must change (some disappeared, like the _PP ones), all hash APIs
call must be change (a must, not detectable at compile time), etc.
IS_LONG to IS_INT is a joke in comparison. But as nobody agrees on
that, I won't discuss it to death.

 2. If bigints are implemented, we’d have to rename everything again.

Ah, and that will be acceptable then, right? ;-)

Also hurry up with that, even if not totally completed. Many
extensions may have to deal with it and it will just double the
porting work if it is not done soon.

Cheers,
-- 
Pierre

@pierrejoye | http://www.libgd.org

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Andrea Faulds

On 23 Aug 2014, at 20:38, Pierre Joye pierre@gmail.com wrote:

 Please try to port one. That will solve this never ending ping pong
 game. Extensions are broken per se with ng, almost every zval macros
 usage must change (some disappeared, like the _PP ones), all hash APIs
 call must be change (a must, not detectable at compile time), etc.
 IS_LONG to IS_INT is a joke in comparison. But as nobody agrees on
 that, I won't discuss it to death.

You previously told me on this list that if I maintained an extension, I’d know 
that replacing macro names with a find/replace is a big deal.

 2. If bigints are implemented, we’d have to rename everything again.
 
 Ah, and that will be acceptable then, right? ;-)

It wouldn’t be needless, it would be done to reduce confusion.

 Also hurry up with that, even if not totally completed. Many
 extensions may have to deal with it and it will just double the
 porting work if it is not done soon.

I’ll look into it.
--
Andrea Faulds
http://ajf.me/





--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-23 Thread Pierre Joye
On Sat, Aug 23, 2014 at 9:41 PM, Andrea Faulds a...@ajf.me wrote:

 On 23 Aug 2014, at 20:38, Pierre Joye pierre@gmail.com wrote:

 Please try to port one. That will solve this never ending ping pong
 game. Extensions are broken per se with ng, almost every zval macros
 usage must change (some disappeared, like the _PP ones), all hash APIs
 call must be change (a must, not detectable at compile time), etc.
 IS_LONG to IS_INT is a joke in comparison. But as nobody agrees on
 that, I won't discuss it to death.

 You previously told me on this list that if I maintained an extension, I’d 
 know that replacing macro names with a find/replace is a big deal.

Excatly, and IS_LONG/INT are not macros and a very very tiny change in
comparison to anything else, be ng alone, or ng+int64.

 2. If bigints are implemented, we’d have to rename everything again.

 Ah, and that will be acceptable then, right? ;-)

 It wouldn’t be needless, it would be done to reduce confusion.

 Also hurry up with that, even if not totally completed. Many
 extensions may have to deal with it and it will just double the
 porting work if it is not done soon.

 I’ll look into it.

If you need help (windows or other), let me know. Want it in  :)


Cheers,
-- 
Pierre

@pierrejoye | http://www.libgd.org

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Nikita Popov
Hi internals!

Today the int64 RFC has been merged, despite objections regarding the
naming changes it introduces.

As we were not given a chance to resolve this issue before the merge, a
short proposal has been created, which aims to revert all unnecessary
naming changes and instead use type names that are consistent with the
existing code base and expectations:

https://wiki.php.net/rfc/better_type_names_for_int64

Due to the unexpected merge on short notice, with no chance for discussion,
this issue is blocking a number of other patches. As such I ask if we can
move through this RFC with a shortened cycle. I would not appreciate having
to wait three weeks to have a workable codebase again.

Nikita


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Joe Watkins
On Fri, 2014-08-22 at 13:16 +0200, Nikita Popov wrote:
 Hi internals!
 
 Today the int64 RFC has been merged, despite objections regarding the
 naming changes it introduces.
 
 As we were not given a chance to resolve this issue before the merge, a
 short proposal has been created, which aims to revert all unnecessary
 naming changes and instead use type names that are consistent with the
 existing code base and expectations:
 
 https://wiki.php.net/rfc/better_type_names_for_int64
 
 Due to the unexpected merge on short notice, with no chance for discussion,
 this issue is blocking a number of other patches. As such I ask if we can
 move through this RFC with a shortened cycle. I would not appreciate having
 to wait three weeks to have a workable codebase again.
 
 Nikita

Morning internals,

I'd very much like the same as Nikita; that's expected names,
and quickly.

Already it is going to be extremely difficult to maintain
extensions for PHP7 and PHP7, we don't need it to get harder, it is not
enough to say that we have to work something out.

Fix it, fix it, fix it !!

Cheers
Joe



-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Bob Weinand
Am 22.8.2014 um 13:16 schrieb Nikita Popov nikita@gmail.com:
 Hi internals!
 
 Today the int64 RFC has been merged, despite objections regarding the
 naming changes it introduces.
 
 As we were not given a chance to resolve this issue before the merge, a
 short proposal has been created, which aims to revert all unnecessary
 naming changes and instead use type names that are consistent with the
 existing code base and expectations:
 
https://wiki.php.net/rfc/better_type_names_for_int64
 
 Due to the unexpected merge on short notice, with no chance for discussion,
 this issue is blocking a number of other patches. As such I ask if we can
 move through this RFC with a shortened cycle. I would not appreciate having
 to wait three weeks to have a workable codebase again.
 
 Nikita

Yes, please. We're all in favor of the 64 bit implementation, but definitely 
not on
the naming. I think it was a big mistake to not separate the naming and
implementation votes initially.

I also would support a shorter RFC cycle, due to its blocking nature.
[Vote in 2-3 days, vote lasting one week as usual]

Bob

Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Derick Rethans
On Fri, 22 Aug 2014, Nikita Popov wrote:

 Hi internals!
 
 Today the int64 RFC has been merged, despite objections regarding the 
 naming changes it introduces.
 
 As we were not given a chance to resolve this issue before the merge, 
 a short proposal has been created, which aims to revert all 
 unnecessary naming changes and instead use type names that are 
 consistent with the existing code base and expectations:
 
 https://wiki.php.net/rfc/better_type_names_for_int64
 
 Due to the unexpected merge on short notice, with no chance for 
 discussion, this issue is blocking a number of other patches. As such 
 I ask if we can move through this RFC with a shortened cycle. I would 
 not appreciate having to wait three weeks to have a workable codebase 
 again.

Yes please. 

cheers,
Derick

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Anatol Belski
Hi Nikita,

On Fri, August 22, 2014 13:16, Nikita Popov wrote:
 Hi internals!


 Today the int64 RFC has been merged, despite objections regarding the
 naming changes it introduces.

 As we were not given a chance to resolve this issue before the merge, a
 short proposal has been created, which aims to revert all unnecessary
 naming changes and instead use type names that are consistent with the
 existing code base and expectations:

 https://wiki.php.net/rfc/better_type_names_for_int64


 Due to the unexpected merge on short notice, with no chance for
 discussion, this issue is blocking a number of other patches. As such I
 ask if we can move through this RFC with a shortened cycle. I would not
 appreciate having to wait three weeks to have a workable codebase again.

 Nikita

to be complete, the RFC probably should take in account several new
identifiers which came in (zend_off_t, zend_stat_t and co.). As their
naming scheme is probably somewhat different. I've just documented those
http://git.php.net/?p=php-src.git;a=blob;f=UPGRADING.INTERNALS and
continue.

Regards

Anatol



-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Pierre Joye
On Fri, Aug 22, 2014 at 1:16 PM, Nikita Popov nikita@gmail.com wrote:
 Hi internals!

 Today the int64 RFC has been merged, despite objections regarding the
 naming changes it introduces.

 As we were not given a chance to resolve this issue before the merge, a
 short proposal has been created, which aims to revert all unnecessary
 naming changes and instead use type names that are consistent with the
 existing code base and expectations:

 https://wiki.php.net/rfc/better_type_names_for_int64

 Due to the unexpected merge on short notice, with no chance for discussion,
 this issue is blocking a number of other patches. As such I ask if we can
 move through this RFC with a shortened cycle. I would not appreciate having
 to wait three weeks to have a workable codebase again.

I also request to let me add options for actual good naming (see my
previous reply). I would also strongly suggest to group these renaming
actions in one RFC and get rid of it in the next couple of weeks
(following the usual periods for a RFC). STR macros being on top of my
list.

And I'd to remember that we suffer from double standards while you
guys do whatever you want with ng, and certainly with ast as well. I
wonder what you would say if we begin to be as picky and keep asking
to change things for months :/

Cheers,
-- 
Pierre

@pierrejoye | http://www.libgd.org

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Pierre Joye
On Fri, Aug 22, 2014 at 1:16 PM, Nikita Popov nikita@gmail.com wrote:
 Hi internals!

 Today the int64 RFC has been merged, despite objections regarding the
 naming changes it introduces.

 As we were not given a chance to resolve this issue before the merge, a
 short proposal has been created, which aims to revert all unnecessary
 naming changes and instead use type names that are consistent with the
 existing code base and expectations:

 https://wiki.php.net/rfc/better_type_names_for_int64

 Due to the unexpected merge on short notice, with no chance for discussion,
 this issue is blocking a number of other patches. As such I ask if we can
 move through this RFC with a shortened cycle. I would not appreciate having
 to wait three weeks to have a workable codebase again.

I am against what you propose while being open to have better naming.

Keeping what we have in 5.x is a huge mistake and will cause many
issues, just like what NG does by using the same APIs or macros names
but with different argument types. One example is the STR macro, a
major pain.

And the names of a macro should match what they actually do and the
actually types they deal with, not some random totally misleading
names.

Cheers,
-- 
Pierre

@pierrejoye | http://www.libgd.org

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Pierre Joye
On Fri, Aug 22, 2014 at 1:28 PM, Bob Weinand bobw...@hotmail.com wrote:

 Yes, please. We're all in favor of the 64 bit implementation, but definitely 
 not on
 the naming. I think it was a big mistake to not separate the naming and
 implementation votes initially.

 I also would support a shorter RFC cycle, due to its blocking nature.
 [Vote in 2-3 days, vote lasting one week as usual]

No.

-- 
Pierre

@pierrejoye | http://www.libgd.org

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Jan Ehrhardt
Pierre Joye in php.internals (Fri, 22 Aug 2014 14:17:04 +0200):
And I'd to remember that we suffer from double standards while you
guys do whatever you want with ng, and certainly with ast as well.

Just a side note: talking in you guys and we is not constructive. I
had the idea you had come a lot closer while working on the 64bit patch.
Do not spoil that.

Jan

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread christopher jones



On 8/22/14, 5:11 AM, Pierre Joye wrote:

On Fri, Aug 22, 2014 at 1:28 PM, Bob Weinand bobw...@hotmail.com wrote:


Yes, please. We're all in favor of the 64 bit implementation, but definitely 
not on
the naming. I think it was a big mistake to not separate the naming and
implementation votes initially.

I also would support a shorter RFC cycle, due to its blocking nature.
[Vote in 2-3 days, vote lasting one week as usual]


No.



Since this is obviously contentious it should follow the normal RFC cycle.

Chris

--
christopher.jo...@oracle.com  http://twitter.com/ghrd
Free PHP  Oracle book:
http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Andrea Faulds

On 22 Aug 2014, at 12:16, Nikita Popov nikita@gmail.com wrote:

 As we were not given a chance to resolve this issue before the merge, a
 short proposal has been created, which aims to revert all unnecessary
 naming changes and instead use type names that are consistent with the
 existing code base and expectations:
 
https://wiki.php.net/rfc/better_type_names_for_int64
 
 Due to the unexpected merge on short notice, with no chance for discussion,
 this issue is blocking a number of other patches. As such I ask if we can
 move through this RFC with a shortened cycle. I would not appreciate having
 to wait three weeks to have a workable codebase again.

I’m very much in favour of this RFC. It is not necessary to change the type 
names after all; if people turn on compiler warnings, they’ll find out what’s 
broken anyway.

--
Andrea Faulds
http://ajf.me/





--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Jan Ehrhardt
Andrea Faulds in php.internals (Fri, 22 Aug 2014 16:32:51 +0100):
I’m very much in favour of this RFC. It is not necessary to change
the type names after all; if people turn on compiler warnings, they’ll
find out what’s broken anyway.

'people'? Which people?

Will a normal user ever notice anything of the change from long to int?
Isn't this something that only developers of extensions will notice? My
guess is that this chnage is only a minor point when converting
extensions to ng.

Jan

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Ferenc Kovacs
2014.08.22. 17:56 ezt írta (Jan Ehrhardt php...@ehrhardt.nl):

 Andrea Faulds in php.internals (Fri, 22 Aug 2014 16:32:51 +0100):
 I’m very much in favour of this RFC. It is not necessary to change
 the type names after all; if people turn on compiler warnings, they’ll
 find out what’s broken anyway.

 'people'? Which people?

 Will a normal user ever notice anything of the change from long to int?
 Isn't this something that only developers of extensions will notice? My
 guess is that this chnage is only a minor point when converting
 extensions to ng.


People means ext devs here.
The concern raised here that if we delay the namechange then early
adopters(ext developers adding support for php7) have to update their code
twice.
I don't think this will major pita (compared to the phpng changes or other
upcoming stuff) but would have been nice resolving this before the merge


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Jan Ehrhardt
Ferenc Kovacs in php.internals (Fri, 22 Aug 2014 18:59:01 +0200):
People means ext devs here.

OK.

The concern raised here that if we delay the namechange then early
adopters(ext developers adding support for php7) have to update their code
twice.

Provided the name change (back!) is agreed upon. Now that is has been
changed once, there is a chance to look at it with an open mind and
decide what is best for the coming years.

Jan

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Pierre Joye
On Aug 22, 2014 5:33 PM, Andrea Faulds a...@ajf.me wrote:


 On 22 Aug 2014, at 12:16, Nikita Popov nikita@gmail.com wrote:

  As we were not given a chance to resolve this issue before the merge, a
  short proposal has been created, which aims to revert all unnecessary
  naming changes and instead use type names that are consistent with the
  existing code base and expectations:
 
 https://wiki.php.net/rfc/better_type_names_for_int64
 
  Due to the unexpected merge on short notice, with no chance for
discussion,
  this issue is blocking a number of other patches. As such I ask if we
can
  move through this RFC with a shortened cycle. I would not appreciate
having
  to wait three weeks to have a workable codebase again.

 I’m very much in favour of this RFC. It is not necessary to change the
type names after all; if people turn on compiler warnings, they’ll find out
what’s broken anyway.

That's one of my points. They won't for all cases. And why good names
reflecting the underlying type will help. It is what the 1st version if the
int64 rfc did.


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Rasmus Lerdorf
On 8/22/14, 11:38 AM, Pierre Joye wrote:
 On Aug 22, 2014 5:33 PM, Andrea Faulds a...@ajf.me wrote:


 On 22 Aug 2014, at 12:16, Nikita Popov nikita@gmail.com wrote:

 As we were not given a chance to resolve this issue before the merge, a
 short proposal has been created, which aims to revert all unnecessary
 naming changes and instead use type names that are consistent with the
 existing code base and expectations:

https://wiki.php.net/rfc/better_type_names_for_int64

 Due to the unexpected merge on short notice, with no chance for
 discussion,
 this issue is blocking a number of other patches. As such I ask if we
 can
 move through this RFC with a shortened cycle. I would not appreciate
 having
 to wait three weeks to have a workable codebase again.

 I’m very much in favour of this RFC. It is not necessary to change the
 type names after all; if people turn on compiler warnings, they’ll find out
 what’s broken anyway.
 
 That's one of my points. They won't for all cases. And why good names
 reflecting the underlying type will help. It is what the 1st version if the
 int64 rfc did.

The end result here is likely that in order to write a portable
extension, extension authors will simply do:

#ifndef IS_LONG
# define IS_LONG IS_INT
# define Z_STRLEN Z_STRSIZE
# define RETURN_LONG RETURN_INT
# define RETVAL_LONG RETVAL_INT
# define Z_LVAL Z_IVAL
...
#endif

and not change a single macro anywhere in the actual code.

That's certainly what I would do. And if the current naming survives we
should provide a macro_compat.h file with the complete set.

Overall I don't think trying to make the macro names match the
underlying types exactly is worth the hassle here. Our audience for this
is extension authors. In most cases the author doesn't necessarily care
about the subtle differences between calling it IS_LONG and IS_INT and I
don't think it actually makes it any more clear to a C developer. int
is not a well-defined cross-platform type anymore than a long is. So
we are swapping one set of vague names for another set of vague names.
I'd much rather see a nice clear README.TYPES or perhaps it is simply
part of the existing README.PARAMETER_PARSING_API which defines exactly
what these various macros mean.

-Rasmus



signature.asc
Description: OpenPGP digital signature


Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Andrea Faulds

On 23 Aug 2014, at 03:05, Rasmus Lerdorf ras...@lerdorf.com wrote:

 The end result here is likely that in order to write a portable
 extension, extension authors will simply do:
 
 #ifndef IS_LONG
 # define IS_LONG IS_INT
 # define Z_STRLEN Z_STRSIZE
 # define RETURN_LONG RETURN_INT
 # define RETVAL_LONG RETVAL_INT
 # define Z_LVAL Z_IVAL
 ...
 #endif
 
 and not change a single macro anywhere in the actual code.

That’s a very good point. It’s easy to forget that many people write 
cross-version compatible extensions.

 That's certainly what I would do. And if the current naming survives we
 should provide a macro_compat.h file with the complete set.

Perhaps we could backport the new types, too, and make them just aliases on 
older PHP versions?

For example, zend_int would be a long in 5.5 and 5.6, but a 64-bit-on-64-bit 
type on 7.

 Overall I don't think trying to make the macro names match the
 underlying types exactly is worth the hassle here. Our audience for this
 is extension authors. In most cases the author doesn't necessarily care
 about the subtle differences between calling it IS_LONG and IS_INT and I
 don't think it actually makes it any more clear to a C developer. int
 is not a well-defined cross-platform type anymore than a long is. So
 we are swapping one set of vague names for another set of vague names.
 I'd much rather see a nice clear README.TYPES or perhaps it is simply
 part of the existing README.PARAMETER_PARSING_API which defines exactly
 what these various macros mean.

+1 to that.

--
Andrea Faulds
http://ajf.me/





--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Better type names for int64 RFC

2014-08-22 Thread Pierre Joye
hi Rasmus,

On Sat, Aug 23, 2014 at 4:05 AM, Rasmus Lerdorf ras...@lerdorf.com wrote:
 On 8/22/14, 11:38 AM, Pierre Joye wrote:
 On Aug 22, 2014 5:33 PM, Andrea Faulds a...@ajf.me wrote:


 On 22 Aug 2014, at 12:16, Nikita Popov nikita@gmail.com wrote:

 As we were not given a chance to resolve this issue before the merge, a
 short proposal has been created, which aims to revert all unnecessary
 naming changes and instead use type names that are consistent with the
 existing code base and expectations:

https://wiki.php.net/rfc/better_type_names_for_int64

 Due to the unexpected merge on short notice, with no chance for
 discussion,
 this issue is blocking a number of other patches. As such I ask if we
 can
 move through this RFC with a shortened cycle. I would not appreciate
 having
 to wait three weeks to have a workable codebase again.

 I’m very much in favour of this RFC. It is not necessary to change the
 type names after all; if people turn on compiler warnings, they’ll find out
 what’s broken anyway.

 That's one of my points. They won't for all cases. And why good names
 reflecting the underlying type will help. It is what the 1st version if the
 int64 rfc did.

 The end result here is likely that in order to write a portable
 extension, extension authors will simply do:

 #ifndef IS_LONG
 # define IS_LONG IS_INT
 # define Z_STRLEN Z_STRSIZE
 # define RETURN_LONG RETURN_INT
 # define RETVAL_LONG RETVAL_INT
 # define Z_LVAL Z_IVAL
 ...
 #endif

 and not change a single macro anywhere in the actual code.

If the int64 RFC was accepted for 5.x, this solution would be perfect
(except from a confusing usage and type point of view). But you would
also need #ifdef for the declarations when used with zpp, or storing
values in variables, for the zval integer and strings values:

/* for zval string */
#if PHP_MAJOR_VERSION  6
size_t str_size;
char *str;
#else
int str_size;
char *str;
#endif

Same for zpp argument_

#if PHP_MAJOR_VERSION  6
zend_string path;
#else
int str_size;
char *path;
int   path_len;
#endif

Besides that many changes can't be aliased, same APIs or macros use
different arguments or argument content, f.e. the hash api:

f.e.:
- warning at build time:
ex 1:
- php_basename(path_cleaned, path_cleaned_len, NULL, 0,
file_basename, (size_t *)file_basename_len TSRMLS_CC);
+  file_basename = php_basename(path_cleaned, path_cleaned_len, NULL,
0 TSRMLS_CC);

ex 2:
- add_next_index_string(return_value, fullpath, 1);
+ add_next_index_string(return_value, fullpath);

- or even more dangerous if forgotten (no compile time detection (size
and return value):
ex 1 (hash functions):
- if (zend_hash_find(HASH_OF(options), add_path, sizeof(add_path),
(void **)option) == SUCCESS) {
+ if ((option = zend_hash_str_find(HASH_OF(options), add_path,
sizeof(add_path) - 1)) != NULL) {

-  zend_hash_add(prop_handler, name, strlen(name)+1, hnd,
sizeof(zip_prop_handler), NULL);
+  zend_hash_str_add_mem(prop_handler, name, strlen(name), hnd,
sizeof(zip_prop_handler));


ex 2:
use of string will need different free calls:
- efree(file_basename);
+ STR_RELEASE(file_basename);



 That's certainly what I would do. And if the current naming survives we
 should provide a macro_compat.h file with the complete set.


The more exts I work on the less I think our current flow for git will
work out of the box. I am slowly considering creating separate
branches for 7 and 5.x, with different packages for the releases
(avoiding to have to upload/download two code bases when only one is
used).  But this is almost another topic, I will post a mail about it
and see how Pickle could help here.

 Overall I don't think trying to make the macro names match the
 underlying types exactly is worth the hassle here. Our audience for this
 is extension authors. In most cases the author doesn't necessarily care
 about the subtle differences between calling it IS_LONG and IS_INT and I
 don't think it actually makes it any more clear to a C developer. int
 is not a well-defined cross-platform type anymore than a long is.

Well, in the context of of the integer case, zend_uint vs zend_int_t,
it is. Or it is for the case used in the engine. Nikita and I had a
long discussions last night. We came to two conclusions:

- zend_uint should go away.
- uint32_t should be used instead
- zend_int_t could remain
  . it matches the respective, architecture specific int32_t and
int64_t being used behind it. _t standing for _typed just like in the
standard types intXX_t
- We did not reach an agreement about IS_LONG.

My point: If we keep it, it increases the porting bugs. As we already
have seen in many extensions, is confusing and devs forgot to check
the type. IS_INT matches PHP's integer, which is architecture
dependent, devs may be more careful.
Nikita's point is about not changing it for changing it along what is
described in the RFC (@Nikita, please complete :)

Pretty much the same applies to the Z_STRLEN vs T_STRSIZE. Here I came
back to