You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by NormW <no...@gknw.net> on 2015/08/26 00:53:44 UTC

modules\http2 - structure initializing.

G/Morning,
Herewith an svn diff that implements line-by-line initialization of 
three structures (no idea if there's a technical term for it) in place 
of the list method now used, e.g struct x = { , , , }.

I acknowledge upfront that 'my' somewhat dated compiler cannot handle 
the list method, whereas the method portrayed in the diff is totally 
acceptable to it.

However, I find the 'list' method less easier to 'read' as the struct 
elements are not 'visible', and one has to locate the struct definition 
itself to see what is being set to what. The method as illustrated by 
the patch is clearer (to my mind) and not affected by the order of the 
elements within the primary structure.

Lastly I noticed at least one case recently where my diff 'simplified' 
because a struct was changed to the _suggested_ method, with the primary 
struct being created by a memset(); perhaps that's a similar change 
needed in these cases also?

Regards,
Norm




Re: modules\http2 - structure initializing.

Posted by Jim Jagielski <ji...@jaguNET.com>.
We don't want C90 specifics, certainly not in 2.4... Strict ANSI.

> On Aug 26, 2015, at 11:26 AM, Stefan Eissing <st...@greenbytes.de> wrote:
> 
> Hi Norm,
> 
> I think these type of assignments are part of the C90 standard. I am not sure we want to support a compiler that cannot cope with that, but I may be to green to know that. What platform is this on exactly?
> 
> //Stefan
> 
>> Am 26.08.2015 um 00:53 schrieb NormW <no...@gknw.net>:
>> 
>> G/Morning,
>> Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }.
>> 
>> I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it.
>> 
>> However, I find the 'list' method less easier to 'read' as the struct elements are not 'visible', and one has to locate the struct definition itself to see what is being set to what. The method as illustrated by the patch is clearer (to my mind) and not affected by the order of the elements within the primary structure.
>> 
>> Lastly I noticed at least one case recently where my diff 'simplified' because a struct was changed to the _suggested_ method, with the primary struct being created by a memset(); perhaps that's a similar change needed in these cases also?
>> 
>> Regards,
>> Norm
>> 
>> 
>> 
>> <cw_reqd_chgs.diff>
> 
> <green/>bytes GmbH
> Hafenweg 16, 48155 Münster, Germany
> Phone: +49 251 2807760. Amtsgericht Münster: HRB5782
> 
> 
> 


Re: modules\http2 - structure initializing.

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
Netware, I'd presume.

Going forwards on trunk (not breaking 2.4.x) I agree with Norm that the
explicit list is easier for developers to first approach than the list
schema.

The feature I'd really like to see us adopt on trunk is incomplete
structures, which would allow us to break code that believes it knows the
length of an httpd exported structure (it doesn't).

The showstopper I see to 2.6/3.0 GA would be an explicit _create
initializer for all of httpd's exposed types.  This would prevent the sort
of breakage caused by our introduction of HttpTrailers late in the 2.4.x
game.

Bill

On Wed, Aug 26, 2015 at 10:26 AM, Stefan Eissing <
stefan.eissing@greenbytes.de> wrote:

> Hi Norm,
>
> I think these type of assignments are part of the C90 standard. I am not
> sure we want to support a compiler that cannot cope with that, but I may be
> to green to know that. What platform is this on exactly?
>
> //Stefan
>
> > Am 26.08.2015 um 00:53 schrieb NormW <no...@gknw.net>:
> >
> > G/Morning,
> > Herewith an svn diff that implements line-by-line initialization of
> three structures (no idea if there's a technical term for it) in place of
> the list method now used, e.g struct x = { , , , }.
> >
> > I acknowledge upfront that 'my' somewhat dated compiler cannot handle
> the list method, whereas the method portrayed in the diff is totally
> acceptable to it.
> >
> > However, I find the 'list' method less easier to 'read' as the struct
> elements are not 'visible', and one has to locate the struct definition
> itself to see what is being set to what. The method as illustrated by the
> patch is clearer (to my mind) and not affected by the order of the elements
> within the primary structure.
> >
> > Lastly I noticed at least one case recently where my diff 'simplified'
> because a struct was changed to the _suggested_ method, with the primary
> struct being created by a memset(); perhaps that's a similar change needed
> in these cases also?
> >
> > Regards,
> > Norm
> >
> >
> >
> > <cw_reqd_chgs.diff>
>
> <green/>bytes GmbH
> Hafenweg 16, 48155 Münster, Germany
> Phone: +49 251 2807760. Amtsgericht Münster: HRB5782
>
>
>
>

Re: modules\http2 - structure initializing.

Posted by Stefan Eissing <st...@greenbytes.de>.
Submitted in r1698107.

> Am 26.08.2015 um 23:41 schrieb NormW <no...@gknw.net>:
> 
> Whinnnie!
> (eq Equine 'Thanks')
> On 27/08/2015 7:31 AM, Stefan Eissing wrote:
>> I will apply the proposed change tomorrow. keep the old horse happy.
>> 
>> //stefan
>> 
>>> Am 26.08.2015 um 23:18 schrieb NormW <no...@gknw.net>:
>>> 
>>> G/Morning I think,
>>> As Bill correctly guesses in a following mail, 'my' OS is NetWare and it's the standard compiler GK has been using for years to build Apache releases.
>>> 
>>> And that (Metrowerks CW) (AFAIK) is a C89 legend.
>>> 
>>> As I noted in my mail, I would hardly expect to hold back tomorrows http/2 protocol for so dated a horse as NetWare, and if you introduced coding or functions that NetWare's compiler doesn't support then it's 'game-over' for the old war horse as far as http2 is concerned. For the moment however I merely suggest an opinion that initializing structures via a list of individual assignments is a better form to read the code than what is used at present, and a small, almost irrelevant side effect of which is that, for now at least, my compiler can keep building http2 for NetWare, with no functional change to the code.
>>> Regards,
>>> Norm
>>> 
>>>> On 27/08/2015 1:26 AM, Stefan Eissing wrote:
>>>> Hi Norm,
>>>> 
>>>> I think these type of assignments are part of the C90 standard. I am not sure we want to support a compiler that cannot cope with that, but I may be to green to know that. What platform is this on exactly?
>>>> 
>>>> //Stefan
>>>> 
>>>>> Am 26.08.2015 um 00:53 schrieb NormW <no...@gknw.net>:
>>>>> 
>>>>> G/Morning,
>>>>> Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }.
>>>>> 
>>>>> I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it.
>>>>> 
>>>>> However, I find the 'list' method less easier to 'read' as the struct elements are not 'visible', and one has to locate the struct definition itself to see what is being set to what. The method as illustrated by the patch is clearer (to my mind) and not affected by the order of the elements within the primary structure.
>>>>> 
>>>>> Lastly I noticed at least one case recently where my diff 'simplified' because a struct was changed to the _suggested_ method, with the primary struct being created by a memset(); perhaps that's a similar change needed in these cases also?
>>>>> 
>>>>> Regards,
>>>>> Norm
>>>>> 
>>>>> 
>>>>> 
>>>>> <cw_reqd_chgs.diff>
>>>> 
>>>> <green/>bytes GmbH
>>>> Hafenweg 16, 48155 Münster, Germany
>>>> Phone: +49 251 2807760. Amtsgericht Münster: HRB5782
>>> 
> 

<green/>bytes GmbH
Hafenweg 16, 48155 Münster, Germany
Phone: +49 251 2807760. Amtsgericht Münster: HRB5782




Re: modules\http2 - structure initializing.

Posted by NormW <no...@gknw.net>.
Whinnnie!
(eq Equine 'Thanks')
On 27/08/2015 7:31 AM, Stefan Eissing wrote:
> I will apply the proposed change tomorrow. keep the old horse happy.
>
> //stefan
>
>> Am 26.08.2015 um 23:18 schrieb NormW <no...@gknw.net>:
>>
>> G/Morning I think,
>> As Bill correctly guesses in a following mail, 'my' OS is NetWare and it's the standard compiler GK has been using for years to build Apache releases.
>>
>> And that (Metrowerks CW) (AFAIK) is a C89 legend.
>>
>> As I noted in my mail, I would hardly expect to hold back tomorrows http/2 protocol for so dated a horse as NetWare, and if you introduced coding or functions that NetWare's compiler doesn't support then it's 'game-over' for the old war horse as far as http2 is concerned. For the moment however I merely suggest an opinion that initializing structures via a list of individual assignments is a better form to read the code than what is used at present, and a small, almost irrelevant side effect of which is that, for now at least, my compiler can keep building http2 for NetWare, with no functional change to the code.
>> Regards,
>> Norm
>>
>>> On 27/08/2015 1:26 AM, Stefan Eissing wrote:
>>> Hi Norm,
>>>
>>> I think these type of assignments are part of the C90 standard. I am not sure we want to support a compiler that cannot cope with that, but I may be to green to know that. What platform is this on exactly?
>>>
>>> //Stefan
>>>
>>>> Am 26.08.2015 um 00:53 schrieb NormW <no...@gknw.net>:
>>>>
>>>> G/Morning,
>>>> Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }.
>>>>
>>>> I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it.
>>>>
>>>> However, I find the 'list' method less easier to 'read' as the struct elements are not 'visible', and one has to locate the struct definition itself to see what is being set to what. The method as illustrated by the patch is clearer (to my mind) and not affected by the order of the elements within the primary structure.
>>>>
>>>> Lastly I noticed at least one case recently where my diff 'simplified' because a struct was changed to the _suggested_ method, with the primary struct being created by a memset(); perhaps that's a similar change needed in these cases also?
>>>>
>>>> Regards,
>>>> Norm
>>>>
>>>>
>>>>
>>>> <cw_reqd_chgs.diff>
>>>
>>> <green/>bytes GmbH
>>> Hafenweg 16, 48155 Münster, Germany
>>> Phone: +49 251 2807760. Amtsgericht Münster: HRB5782
>>


Re: modules\http2 - structure initializing.

Posted by Stefan Eissing <st...@greenbytes.de>.
I will apply the proposed change tomorrow. keep the old horse happy. 

//stefan

> Am 26.08.2015 um 23:18 schrieb NormW <no...@gknw.net>:
> 
> G/Morning I think,
> As Bill correctly guesses in a following mail, 'my' OS is NetWare and it's the standard compiler GK has been using for years to build Apache releases.
> 
> And that (Metrowerks CW) (AFAIK) is a C89 legend.
> 
> As I noted in my mail, I would hardly expect to hold back tomorrows http/2 protocol for so dated a horse as NetWare, and if you introduced coding or functions that NetWare's compiler doesn't support then it's 'game-over' for the old war horse as far as http2 is concerned. For the moment however I merely suggest an opinion that initializing structures via a list of individual assignments is a better form to read the code than what is used at present, and a small, almost irrelevant side effect of which is that, for now at least, my compiler can keep building http2 for NetWare, with no functional change to the code.
> Regards,
> Norm
> 
>> On 27/08/2015 1:26 AM, Stefan Eissing wrote:
>> Hi Norm,
>> 
>> I think these type of assignments are part of the C90 standard. I am not sure we want to support a compiler that cannot cope with that, but I may be to green to know that. What platform is this on exactly?
>> 
>> //Stefan
>> 
>>> Am 26.08.2015 um 00:53 schrieb NormW <no...@gknw.net>:
>>> 
>>> G/Morning,
>>> Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }.
>>> 
>>> I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it.
>>> 
>>> However, I find the 'list' method less easier to 'read' as the struct elements are not 'visible', and one has to locate the struct definition itself to see what is being set to what. The method as illustrated by the patch is clearer (to my mind) and not affected by the order of the elements within the primary structure.
>>> 
>>> Lastly I noticed at least one case recently where my diff 'simplified' because a struct was changed to the _suggested_ method, with the primary struct being created by a memset(); perhaps that's a similar change needed in these cases also?
>>> 
>>> Regards,
>>> Norm
>>> 
>>> 
>>> 
>>> <cw_reqd_chgs.diff>
>> 
>> <green/>bytes GmbH
>> Hafenweg 16, 48155 Münster, Germany
>> Phone: +49 251 2807760. Amtsgericht Münster: HRB5782
> 

Re: modules\http2 - structure initializing.

Posted by NormW <no...@gknw.net>.
G/Morning I think,
As Bill correctly guesses in a following mail, 'my' OS is NetWare and 
it's the standard compiler GK has been using for years to build Apache 
releases.

And that (Metrowerks CW) (AFAIK) is a C89 legend.

As I noted in my mail, I would hardly expect to hold back tomorrows 
http/2 protocol for so dated a horse as NetWare, and if you introduced 
coding or functions that NetWare's compiler doesn't support then it's 
'game-over' for the old war horse as far as http2 is concerned. For the 
moment however I merely suggest an opinion that initializing structures 
via a list of individual assignments is a better form to read the code 
than what is used at present, and a small, almost irrelevant side effect 
of which is that, for now at least, my compiler can keep building http2 
for NetWare, with no functional change to the code.
Regards,
Norm

On 27/08/2015 1:26 AM, Stefan Eissing wrote:
> Hi Norm,
>
> I think these type of assignments are part of the C90 standard. I am not sure we want to support a compiler that cannot cope with that, but I may be to green to know that. What platform is this on exactly?
>
> //Stefan
>
>> Am 26.08.2015 um 00:53 schrieb NormW <no...@gknw.net>:
>>
>> G/Morning,
>> Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }.
>>
>> I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it.
>>
>> However, I find the 'list' method less easier to 'read' as the struct elements are not 'visible', and one has to locate the struct definition itself to see what is being set to what. The method as illustrated by the patch is clearer (to my mind) and not affected by the order of the elements within the primary structure.
>>
>> Lastly I noticed at least one case recently where my diff 'simplified' because a struct was changed to the _suggested_ method, with the primary struct being created by a memset(); perhaps that's a similar change needed in these cases also?
>>
>> Regards,
>> Norm
>>
>>
>>
>> <cw_reqd_chgs.diff>
>
> <green/>bytes GmbH
> Hafenweg 16, 48155 Münster, Germany
> Phone: +49 251 2807760. Amtsgericht Münster: HRB5782
>
>
>


Re: modules\http2 - structure initializing.

Posted by Stefan Eissing <st...@greenbytes.de>.
Hi Norm,

I think these type of assignments are part of the C90 standard. I am not sure we want to support a compiler that cannot cope with that, but I may be to green to know that. What platform is this on exactly?

//Stefan

> Am 26.08.2015 um 00:53 schrieb NormW <no...@gknw.net>:
> 
> G/Morning,
> Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }.
> 
> I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it.
> 
> However, I find the 'list' method less easier to 'read' as the struct elements are not 'visible', and one has to locate the struct definition itself to see what is being set to what. The method as illustrated by the patch is clearer (to my mind) and not affected by the order of the elements within the primary structure.
> 
> Lastly I noticed at least one case recently where my diff 'simplified' because a struct was changed to the _suggested_ method, with the primary struct being created by a memset(); perhaps that's a similar change needed in these cases also?
> 
> Regards,
> Norm
> 
> 
> 
> <cw_reqd_chgs.diff>

<green/>bytes GmbH
Hafenweg 16, 48155 Münster, Germany
Phone: +49 251 2807760. Amtsgericht Münster: HRB5782




Re: modules\http2 - structure initializing.

Posted by NormW <no...@gknw.net>.
Yann, Sorry for the delay,
In simple terms, no; it is obvious the compiler (other people use other 
names) just sees that as a single item list, and complains about the 
syntax, regardless of how many items are in the list.

To be honest up to this point the compiler has been able to build 
everything (including all of httpd-trunk), and I proposed the small 
variations suggested in the diff on the grounds I (and evidently a few 
others) thought the suggested format was clearer.

However, it is not MY intention to limit in any way the functionality of 
tomorrows software solely so NetWare can make some show of trying to 
keep up. I've no idea how much more coding is needed for your project, 
and it may be that the next change or the 100th from now will be beyond 
the capabilities of what tools I have to use, and the race will be over 
for both the horse and the rider. Code as you see fit and if it 
eventuates that NetWare can't keep up, there's a lot of others who will.
Regards,
Norm

On 27/08/2015 8:29 PM, Yann Ylavic wrote:
> Hi,
>
> On Wed, Aug 26, 2015 at 12:53 AM, NormW <no...@gknw.net> wrote:
>> Herewith an svn diff that implements line-by-line initialization of three
>> structures (no idea if there's a technical term for it) in place of the list
>> method now used, e.g struct x = { , , , }.
>>
>> I acknowledge upfront that 'my' somewhat dated compiler cannot handle the
>> list method, whereas the method portrayed in the diff is totally acceptable
>> to it.
>
> Does it accept x = {0} still?
>
> Regards,
> Yann.
>


Re: modules\http2 - structure initializing.

Posted by Yann Ylavic <yl...@gmail.com>.
Hi,

On Wed, Aug 26, 2015 at 12:53 AM, NormW <no...@gknw.net> wrote:
> Herewith an svn diff that implements line-by-line initialization of three
> structures (no idea if there's a technical term for it) in place of the list
> method now used, e.g struct x = { , , , }.
>
> I acknowledge upfront that 'my' somewhat dated compiler cannot handle the
> list method, whereas the method portrayed in the diff is totally acceptable
> to it.

Does it accept x = {0} still?

Regards,
Yann.