RFR: 8264707: HotSpot Style Guide should permit use of lambda
Kim Barrett
kbarrett at openjdk.java.net
Wed Aug 18 11:30:28 UTC 2021
On Wed, 18 Aug 2021 02:09:45 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> Please review this proposal to permit the use of lambda expressions in
>> HotSpot code, with some restrictions and suggestions for good usage within
>> HotSpot code. Lambda expressions were added in C++11, and provide a more
>> expressive syntax for local functions, with a number of use-cases where they
>> can improve readability by eliminating a lot of uninteresting boilerplate.
>>
>> Some example uses are included, but are not part of the proposed change.
>> They will be removed from the PR before it is pushed. (In particular, the
>> ScopeGuard utility uses move semantics, the use of which hasn't been
>> approved or even discussed.) They are given to show some of the benefits
>> that might accrue from permitting the use of lambdas. In particular, they
>> highlight some of the code reduction that is possible. Some of these code
>> changes might be proposed in the future, using the normal PR process.
>>
>> This is a modification of the Style Guide, so rough consensus among the
>> HotSpot Group members is required to make this change. Only Group members
>> should vote for approval (via the github PR), though reasoned objections or
>> comments from anyone will be considered. A decision on this proposal will
>> not be made before Wednesday 1-Sep-2021 at 12h00 UTC.
>>
>> Since we're piggybacking on github PRs here, please use the PR review
>> process to approve (click on Review Changes > Approve), rather than sending
>> a "vote: yes" email reply that would be normal for a CFV.
>
> doc/hotspot-style.md line 721:
>
>> 719: is an alternative to having a function or function object class defined at
>> 720: class or namespace scope. Instead, a function class definition is placed
>> 721: directly at the point of use.
>
> Suggested rewording:
>
>> ... namespace scope, instead placing it directly at the point of use.
The wording was intentional; "it" would refer to "a function or function object class", but a *function* can't be locally defined. But it should be consistent about "function object class" vs "function class". The former is the terminology used by the Standard.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5144
More information about the hotspot-dev
mailing list