rtems/src/scheduler* code convention issue

Sebastian Huber sebastian.huber at embedded-brains.de
Tue May 20 18:43:07 UTC 2014


On 05/20/2014 05:30 PM, Joel Sherrill wrote:
> On 5/20/2014 10:17 AM, Sebastian Huber wrote:
>> >On 2014-05-20 16:58, Joel Sherrill wrote:
>>> >>On 5/13/2014 1:16 AM, Sebastian Huber wrote:
>>>>> >>>>On 2014-05-13 01:28, Joel Sherrill wrote:
>>>>>>> >>>>>>Hi
>>>>>>> >>>>>>
>>>>>>> >>>>>>Both schedulerident.c and schedulergetprocessorset.c do not follow
>>>>>>> >>>>>>RTEMS Coding Conventions on avoidance of deep nesting by using
>>>>>>> >>>>>>early returns.
>>>>> >>>>I don't find such a rule here:
>>>>> >>>>
>>>>> >>>>http://www.rtems.org/wiki/index.php/Coding_Conventions
>>>>> >>>>
>>>>>>> >>>>>>The nesting on schedulergetprocessorset.c is pretty
>>>>>>> >>>>>>ugly and could have been avoided easily.
>>>>>>> >>>>>>
>>>>> >>>>I prefer a single exit point.  This is also advised by MISRA Rule 15.5.  It is
>>>>> >>>>required by ISO 61508 and ISO 26262.  It is also "will" rule (AV Rule 113) of
>>>>> >>>>the "JOINT STRIKE FIGHTER AIR VEHICLE C++ CODING STANDARDS FOR THE SYSTEM
>>>>> >>>>DEVELOPMENT AND DEMONSTRATION PROGRAM".
>>>>> >>>>
>>>>> >>>>http://www.stroustrup.com/JSF-AV-rules.pdf
>>>>> >>>>
>>>>> >>>>So if you ask me, then we should also add this to the our coding conventions.
>>>>> >>>>
>>> >>I'll be honest. I don't really care what the JSF rules or MISRA rules
>>> >>say. At this point in the "discussion", what they say is completely
>>> >>irrelevant to this situation. Whether I like this rule or not, the fact
>>> >>remains that
>>> >>
>>> >>(1) There was no community discussion.
>> >I made several attempts to improve the coding style on the wiki.  This is an
>> >ongoing process.
>> >
>>> >>(2) There is no way to enforce it (or any other rule)
>>> >>(3) It is an arbitrary change and leads to inconsistent
>>> >>code in the code base.
>>> >>
>>> >>(1) and (3) really bother me.  (2) we have lived with a long time.
>>> >>I don't like it but we haven't figured out how to solve that.
>>> >>
>>> >>The only community discussion was me asking why you didn't
>>> >>follow existing practice.
>> >There are so many coding styles in the RTEMS code base that it is hard to guess
>> >the "existing practice".
> The BSPs and drivers are not good examples of anything and we have all
> long stated that. The APIs and score portion of cpukit was reasonably
> consistent.
>
> Your response is simply that "I couldn't find the answer so I did what I
> wanted"

You said I violate a rule and I said that there is no such rule in the 
coding style

http://www.rtems.org/wiki/index.php/Coding_Conventions

and that there are good reasons to not follow such a rule.  It was 
simply not clear to me that were was a "avoidance of deep nesting by 
using early returns" rule.  If I look now at the code, then there are 
indeed a lot of examples for this rule.

All I ask is that rules that should be enforced should be part of the 
coding style.  This lack of a proper coding style makes it hard for 
newcomers (e.g. GSoC students or new colleagues) to get started with 
RTEMS development.  I leads also to discussions like this.

> Still no attempt at a community discussion.

This statement is not fair.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.




More information about the devel mailing list