RFR (M): 8183927: Hotspot needs C++ type_traits metaprogramming utilities
Erik Österlund
erik.osterlund at oracle.com
Fri Jul 7 07:40:47 UTC 2017
Hi Robbin,
Thanks for the review.
/Erik
On 2017-07-06 23:11, Robbin Ehn wrote:
> On 07/06/2017 08:55 PM, Kim Barrett wrote:
>>> On Jul 6, 2017, at 9:08 AM, Erik Österlund
>>> <erik.osterlund at oracle.com> wrote:
>>>
>>> Hi,
>>>
>>> I'm sure we have all had moments when we wished we could use the
>>> C++11 type_traits header and the nice metaprogramming tools in
>>> there, but then suddenly remembered that we can not, because we are
>>> building libjvm.so with C++03 and are still arguing whether we can
>>> use namespaces.
>>> Well.. welcome to the future. I am delighted to announce that now at
>>> least some of those tools will become available.
>>>
>>> A bunch of C++11 compliant metaprogramming tools that can be used
>>> already in C++03 have been developed.
>>> They have been developed with the most conservative and portable
>>> C++03 code possible so that even exotic compilers can support it.
>>> Special thanks go to Kim Barret whom I have had many long
>>> conversations about many paragraphs of the C++ standard throughout
>>> this work. It has helped a lot and improved the code.
>>>
>>> While this change introduces the traits without using it in the code
>>> (more than from gtest), it will become used in already prepared
>>> patches for refactoring Atomic and OrderAccess to use templates
>>> rather than hand picked types like the JNI-specific jint etc types.
>>> That serves as the bottom layer of the upcoming GC barrier interface
>>> that also requires these utilities. Since they are rather large
>>> changes, I hope it is okay that I separate out the metaprogramming
>>> utilities. I argue that they are of value in general in hotspot and
>>> will make our lives easier.
>>>
>>> All metaprogramming tools have been placed in a new
>>> hotspot/src/share/vm/metaprogramming directory.
>>> Tests have been written and placed in a new
>>> test/native/metaprogramming directory.
>>>
>>> A bug ID can be found here:
>>> https://bugs.openjdk.java.net/browse/JDK-8183927
>>>
>>> A webrev with code can be found here:
>>> http://cr.openjdk.java.net/~eosterlund/8183927/webrev.00/
>>
>> Looks good.
>>
>
> +1, ship it!
>
> /Robbin
More information about the hotspot-dev
mailing list