RFR (M/XXS) cleanup more non-indent white space issues (8047156)
Daniel D. Daugherty
daniel.daugherty at oracle.com
Wed Jun 18 15:37:08 UTC 2014
On 6/18/14 9:26 AM, Lois Foltan wrote:
>
> On 6/18/2014 9:54 AM, Daniel D. Daugherty wrote:
>> Lois,
>>
>> Thanks for the review. More replies embedded below.
>
> Hi Dan,
>
> Thanks for the explanation. Any chance you would clean up these two
> instances manually since you are in those files anyways?
The changes in this bug (JDK-8047156) and the previous bug
(JDK-8046758) are intentionally only the ones made by
do_space_filter.ksh. I have plans for a manual pass, but that
will use a different bug ID that makes it clear that those
changes are manual and not easy to apply in an automated
fashion.
> Either way, I like the clean up and am good with your changes.
Thanks!
Dan
>
> Lois
>
>>
>>
>> On 6/18/14 5:40 AM, Lois Foltan wrote:
>>> Hi Dan,
>>>
>>> Looks good. One comment, why wasn't the space removed after the
>>> function name but before the "(" for the start of the parameters?
>>>
>>> src/share/vm/runtime/mutex.cpp
>>> -#define TRACE(m) { static volatile int ctr = 0 ; int x = ++ctr ; if ((x & (x-1))==0) { ::printf ("%d:%s\n", x, #m); ::fflush(stdout); }}
>>> +#define TRACE(m) { static volatile int ctr = 0; int x = ++ctr; if ((x & (x-1))==0) { ::printf ("%d:%s\n", x, #m); ::fflush(stdout); }}
>>
>> Single line code blocks are difficult to clean. The '<space>;' instances
>> were easy for the script to clean, but the '::printf<space>(' is much
>> harder because it is a function call in the middle of other things that
>> look like function calls ('TRACE(m)' and '::fflush(stdout)')
>>
>>
>>> src/share/vm/runtime/synchronizer.hpp:
>>> - void waitUninterruptibly (TRAPS) { ObjectSynchronizer::waitUninterruptibly (_obj, 0, CHECK);}
>>> + void waitUninterruptibly (TRAPS) { ObjectSynchronizer::waitUninterruptibly (_obj, 0, CHECK); }
>>
>> Single line function definitions are difficult, but I would have
>> expected 'waitUninterruptibly<space>(TRAPS)' to work... Hmmm...
>> wait... the 'TRAPS' parameter doesn't match the usual format for
>> parameters in a function definition, i.e., <type> <param>. It's a
>> single word and that's probably why the filter skipped it.
>>
>> The interior 'ObjectSynchronizer::waitUninterruptibly<space>(' is
>> harder for the filter to recognize so it was skipped.
>>
>>
>>>
>>> I'm just curious because there are other places where removing the
>>> space does occur? For example:
>>>
>>> src/share/vm/runtime/mutex.cpp
>>> - const intptr_t u = CASPTR (&_LockWord, v, v|_LBIT) ;
>>> - if (v == u) return 1 ;
>>> - v = u ;
>>> + if ((v & _LBIT) != 0) return 0;
>>> + const intptr_t u = CASPTR(&_LockWord, v, v|_LBIT);
>>
>> Right. The 'CASPTR(...)' matches the pattern for a function call so
>> it got cleaned up.
>>
>> The big flaw is that my script isn't a real parser. It's a collection
>> of heuristic pattern matchers and filter/edit lines. The real solution
>> is a parser that not only tokenizes C++, but keeps track of the white
>> space associated with each token. Once you have such a tree, you can
>> apply a set of rules that changes/adds whitespace as needed on a per
>> token basis and then outputs the resulting tree as a modified source
>> file.
>>
>> Dan
>>
>>
>>>
>>> Thanks,
>>> Lois
>>>
>>>
>>> On 6/17/2014 9:12 PM, Daniel D. Daugherty wrote:
>>>> Greetings,
>>>>
>>>> I forgot to update my list of files to clean for the latest version
>>>> of the cleanup bucket so I missed these seven files when I sent out
>>>> the review for:
>>>>
>>>> JDK-8046758 cleanup non-indent white space issues prior to
>>>> Contended
>>>> Locking cleanup bucket
>>>> https://bugs.openjdk.java.net/browse/JDK-8046758
>>>>
>>>> I have the fix for the following bug ready for JDK9 RT_Baseline:
>>>>
>>>> JDK-8047156 cleanup more non-indent white space issues prior to
>>>> Contended Locking cleanup bucket
>>>> https://bugs.openjdk.java.net/browse/JDK-8047156
>>>>
>>>> This is both a (M)edium and e(X)tra e(X)tra (S)mall review! Here is
>>>> the
>>>> URL for the (M)edium webrev:
>>>>
>>>> http://cr.openjdk.java.net/~dcubed/8047156-webrev/0-jdk9-hs-rt/
>>>>
>>>> Since these are white space fixes, I recommend the udiff links instead
>>>> of the frames links. Of course, some folks prefer the patch file
>>>> itself
>>>> for white space fixes.
>>>>
>>>> Here is the URL for the e(X)tra e(X)tra (S)mall webrev which was
>>>> generated with a version of webrev that ignores all whitespace
>>>> changes:
>>>>
>>>> http://cr.openjdk.java.net/~dcubed/8047156-webrev/0-jdk9-hs-rt-no_ws/
>>>>
>>>> Again, I recommend the udiff links since that's the fastest way to see
>>>> that webrev_no_ws found no non-white space changes. The patch file for
>>>> this webrev shows all the white space changes.
>>>>
>>>> Thanks, in advance, for any comments, questions or suggestions.
>>>>
>>>> At the end of the review cycle for this fix, I will attach the
>>>> version of the do_space_filter.ksh script used to do the work to
>>>> JDK-8047156.
>>>>
>>>> Dan
>>>>
>>>>
>>>
>>
>
More information about the hotspot-runtime-dev
mailing list