On Fri, Jun 4, 2021 at 8:47 AM Joel Sherrill <j...@rtems.org> wrote:
>
>
>
> On Fri, Jun 4, 2021 at 12:24 AM Ida Delphine <idad...@gmail.com> wrote:
>>
>> Hello everyone,
>>
>> I applied the configuration Sebastian used and ran clang-format on 
>> cpukit/score/src/threadqenque.c and so far these are the differences I could 
>> notice...
>> Below are some example areas in the code you can spot the differences:
>>
>> In line 68, the ")" at the end of the parameter list needs to be in a new 
>> row, but this doesn't seem to be supported in clang-format.
>
> If I understand correctly, clang-format does not like:
>
> https://git.rtems.org/rtems/tree/cpukit/score/src/threadqenqueue.c
>
> which has the first parameter on its one line but wants the first parameter
> after the open parenthesis?
>
> The RTEMS style would seem to correspond to AlignAfterOpenBracket being
> set to AlwaysBreak
>
>>
>> In line 142, if the function call is split into multiple rows, the ");" 
>> should always be in a new row.
>
> Having the closing parenthesis on its own line may end up being something
> we have to change the RTEMS style on. I do not see an option in their
> documentation to do this. Unfortunate, since I like the symmetry between
> braces and parentheses.
>
>  Could you file an issue with them and/or ask a question the appropriate
> mailing list? Please cc Gedara and me. Give them an example. Maybe
> we are missing something.
>>
>> In line 201-202, we can see that the "*" of the pointers are not aligned to 
>> the right.
>
>
> This seems to be the issue Gedare mentioned which might have a patch.
> Follow up on that.
>
> But I think we had previously discussed this as a point we may have to
> concede and change RTEMS style on.
>>
>> You can check out the formatted file here - https://pastebin.com/nDBrSSCP
>
>
> Is it just the website or are blank line differences? It may just be an
> illusion. I think the spacing between the numbered lines is greater
> than in the git view. Just odd.
>
That's just the pastebin having more vertical padding between consecutive lines.

> --joel
>>
>>
>>
>> On Tue, Jun 1, 2021 at 5:36 PM Gedare Bloom <ged...@rtems.org> wrote:
>>>
>>> On Mon, May 31, 2021 at 2:59 PM Ida Delphine <idad...@gmail.com> wrote:
>>> >
>>> > Hi Gedare,
>>> >
>>> > With regards to your comment on discord on me looking for a tool that 
>>> > works on both patches and source files, it turns out clang-format has 
>>> > that functionality already. Here's what I found - 
>>> > https://clang.llvm.org/docs/ClangFormat.html#script-for-patch-reformatting
>>> >
>>> > Does it match what you have in mind?
>>> >
>>> Yes. I think we would want to not use the `-i` option but instead pass
>>> through and check the changes. I don't think we should rewrite the
>>> patches themselves, but instead we want to use a tool that can be used
>>> to check and approve the style of submitted patches. You might need to
>>> write a modified version of the clang-format-diff.py to use as a
>>> "checker" with ability to provide exceptions to the rules.
>>>
>>> Gedare
>>>
>>> > On Thu, May 13, 2021 at 3:49 PM Gedare Bloom <ged...@rtems.org> wrote:
>>> >>
>>> >> On Wed, May 12, 2021 at 2:18 PM Ida Delphine <idad...@gmail.com> wrote:
>>> >> >
>>> >> > Hello everyone,
>>> >> > Still waiting for some feedback :)
>>> >> >
>>> >> > Cheers,
>>> >> > Ida.
>>> >> >
>>> >> > On Mon, 10 May 2021, 5:59 am Ida Delphine, <idad...@gmail.com> wrote:
>>> >> >>
>>> >> >> Hello everyone,
>>> >> >> Went through some previous emails and it turns out Sebastian already 
>>> >> >> came up with a configuration for clang format which works well for 
>>> >> >> RTEMS except for the fact that some configurations haven't been 
>>> >> >> implemented into clang-format yet. Using
>>> >> >>
>>> >> >> AlignConsecutiveDeclarations: false
>>> >> >> PointerAlignment: Right
>>> >> >>
>>> >> >> Doesn't seem to work.
>>> >> >> For example in the cpukit/score/src/threadq.c file, something like
>>> >> >>
>>> >> >> RTEMS_STATIC_ASSERT(
>>> >> >> offsetof( Thread_queue_Syslock_queue, Queue.name )
>>> >> >> == offsetof( struct _Thread_queue_Queue, _name ),
>>> >> >> THREAD_QUEUE_SYSLOCK_QUEUE_NAME
>>> >> >> );
>>> >> >>
>>> >> >> RTEMS_STATIC_ASSERT(
>>> >> >> sizeof( Thread_queue_Syslock_queue )
>>> >> >> == sizeof( struct _Thread_queue_Queue ),
>>> >> >> THREAD_QUEUE_SYSLOCK_QUEUE_SIZE
>>> >> >> );
>>> >> >>
>>> >> >> #if defined(RTEMS_SMP)
>>> >> >> void _Thread_queue_Do_acquire_critical(
>>> >> >> Thread_queue_Control *the_thread_queue,
>>> >> >> ISR_lock_Context *lock_context
>>> >> >> )
>>> >> >> {
>>> >> >> _Thread_queue_Queue_acquire_critical(
>>> >> >> &the_thread_queue->Queue,
>>> >> >> &the_thread_queue->Lock_stats,
>>> >> >> lock_context
>>> >> >> );
>>> >> >>
>>> >> >> becomes this after using the given configuration
>>> >> >>
>>> >> >> RTEMS_STATIC_ASSERT(sizeof(Thread_queue_Syslock_queue) ==
>>> >> >> sizeof(struct _Thread_queue_Queue),
>>> >> >> THREAD_QUEUE_SYSLOCK_QUEUE_SIZE);
>>> >> >>
>>> >> >> #if defined(RTEMS_SMP)
>>> >> >> void _Thread_queue_Do_acquire_critical(Thread_queue_Control 
>>> >> >> *the_thread_queue,
>>> >> >> ISR_lock_Context *lock_context) {
>>> >> >> _Thread_queue_Queue_acquire_critical(
>>> >> >> &the_thread_queue->Queue, &the_thread_queue->Lock_stats, 
>>> >> >> lock_context);
>>> >> >>
>>> >> >> Everything seems manageable except for this alignment issue...
>>> >> >> This also throws more light on the changes using clang-format 
>>> >> >> (https://lists.rtems.org/pipermail/devel/2018-December/024145.html)
>>> >> >>
>>> >> I think we're willing to concede the pointer alignment. However, it
>>> >> would be worth spending some time to see if
>>> >> https://reviews.llvm.org/D27651 can be made to work. The current state
>>> >> of the code would need to be compared to the patch on that review
>>> >> board.
>>> >>
>>> >> Beyond that, documenting the clang-format options to use is next, and
>>> >> then identifying a plan how to invoke clang-format during a git
>>> >> workflow is needed.
>>> >>
>>> >> >> On Thu, May 6, 2021 at 8:05 PM Joel Sherrill <j...@rtems.org> wrote:
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>> On Thu, May 6, 2021 at 12:47 PM Christian Mauderer 
>>> >> >>> <o...@c-mauderer.de> wrote:
>>> >> >>>>
>>> >> >>>> Hello Ida and Gedare,
>>> >> >>>>
>>> >> >>>> On 06/05/2021 06:26, Gedare Bloom wrote:
>>> >> >>>> > hi Ida,
>>> >> >>>> >
>>> >> >>>> > On Wed, May 5, 2021 at 3:21 PM Ida Delphine <idad...@gmail.com> 
>>> >> >>>> > wrote:
>>> >> >>>> >>
>>> >> >>>> >> Hello everyone,
>>> >> >>>> >>
>>> >> >>>> >> Regarding this project (https://devel.rtems.org/ticket/3860) I 
>>> >> >>>> >> went with clang-format as we all agreed. I have tested it on 
>>> >> >>>> >> some "score" files and it made some changes which I don't think 
>>> >> >>>> >> are very much in line with the RTEMS coding style. However, it 
>>> >> >>>> >> wasn't really clear if we will chage the RTEMS coding style or 
>>> >> >>>> >> try to make changes to clang-format to fit the style.
>>> >> >>>> >> Please will love to know the best option.
>>> >> >>>> >>
>>> >> >>>> > We will likely need to consider our choices carefully. If we can 
>>> >> >>>> > find
>>> >> >>>> > a suitably close style that is already well-supported by clang, 
>>> >> >>>> > and
>>> >> >>>> > get consensus from the maintainers on a change, then that might 
>>> >> >>>> > be the
>>> >> >>>> > best route forward.
>>> >> >>>>
>>> >> >>>> +1
>>> >> >>>>
>>> >> >>>> > I think the first thing to do is take the examples
>>> >> >>>> > that have been shown by Sebastian that are "close" but not quite
>>> >> >>>> > perfect, and identify the cases where they differ with RTEMS 
>>> >> >>>> > style in
>>> >> >>>> > order to present for discussion here. If consensus can't be 
>>> >> >>>> > reached to
>>> >> >>>> > change the style, then we would need to have a plan for how to 
>>> >> >>>> > improve
>>> >> >>>> > the existing tools for what we have.
>>> >> >>>>
>>> >> >>>> I also found the following tool quite useful to play with the clang
>>> >> >>>> style config:
>>> >> >>>>
>>> >> >>>> https://zed0.co.uk/clang-format-configurator/
>>> >> >>>>
>>> >> >>>> Maybe it can help a bit to find out what certain options mean.
>>> >> >>>>
>>> >> >>>> >
>>> >> >>>> > However, I think there is interest in doing less work on the tool
>>> >> >>>> > side, and more work on how to integrate it into our workflows 
>>> >> >>>> > better.
>>> >> >>>>
>>> >> >>>> +1
>>> >> >>>
>>> >> >>>
>>> >> >>> I agree with all of this from the student perspective. But we will 
>>> >> >>> have
>>> >> >>> to come to some agreement on a machine producible format to
>>> >> >>> be able to use the integration. A report on what doesn't match would
>>> >> >>> give us something to chew on while Ida works the integration.
>>> >> >>>
>>> >> >>> --joel
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> >
>>> >> >>>> >> Cheers,
>>> >> >>>> >> Ida.
>>> >> >>>> >> _______________________________________________
>>> >> >>>> >> devel mailing list
>>> >> >>>> >> devel@rtems.org
>>> >> >>>> >> http://lists.rtems.org/mailman/listinfo/devel
>>> >> >>>> > _______________________________________________
>>> >> >>>> > devel mailing list
>>> >> >>>> > devel@rtems.org
>>> >> >>>> > http://lists.rtems.org/mailman/listinfo/devel
>>> >> >>>> >
>>> >> >>>> _______________________________________________
>>> >> >>>> devel mailing list
>>> >> >>>> devel@rtems.org
>>> >> >>>> http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to