+1 for C++11/cmake/Py3 as part of 1.0

On Tue, Mar 17, 2015 at 5:13 PM, Konrad Grochowski <[email protected]>
wrote:

> +1
>
> As you may remember I was working on C++11/cpp_v2 gen/lib -
> https://github.com/hcorg/thrift/tree/cpp_v2 yet I had to put it on a
> hiatus some time ago... Maybe next month I'll find some time to finish it
> (I think I was pretty close to 0.0.1 version of complete generator ;) )
>
> -KG
>
> W dniu 2015-03-18 o 01:05, Jake Farrell pisze:
>
>  +1
>>
>> Thoughts on cutting the 0.9.3 release so we do not have a long delay
>> between releases again and put this in for a 0.9.4 or we could stop the
>> point releases and go with 1.0 with full c++11, cmake, py3.0, etc.
>>
>> -Jake
>>
>> On Tue, Mar 17, 2015 at 7:41 PM, Roger Meier <[email protected]>
>> wrote:
>>
>>  Hi all
>>>
>>> We had lot of discussions and issues about C++11 support and I think it
>>> is
>>> time to move the master branch development towards C++11 and set this as
>>> a
>>> dependency starting wit 0.9.3 of Apache Thrift.
>>>
>>> reasons to move forward:
>>> - no feature show stopper due to C++98 dependency
>>> - no backport of patches, it's a nightmare
>>> - master branch should focus towards future
>>> - evolution of compiler and cpp library
>>> - many developers already use C++11 capable compilers
>>>     - http://cpprocks.com/c11-compiler-support-shootout-
>>> visual-studio-gcc-clang-intel/
>>>     - gcc support -std=c++11 since version 4.7
>>>       see https://gcc.gnu.org/projects/cxx0x.html
>>>     - clang 3.5
>>> - all recent Linux distros support C++11
>>>     - centos 7 uses gcc 4.8.2
>>>     - Debian Jessie uses gcc 4.9.2
>>>     - Debian Wheezy uses gcc 4.7.2
>>>     - RHEL-7.0 uses gcc 4.8.2
>>>     - Suse 13.2 uses gcc 4.8.3
>>>     - Suse 13.1 uses gcc 4.8.1
>>>     - Ubuntu utopic 14.10 uses gcc 4.9.1
>>>     - Ubuntu trusty 14.04 LTS uses gcc 4.8.2
>>>     - Ubuntu saucy 13.10 uses gcc 4.8.1
>>> - it is 2015 and C++11 is ready to use in the wild
>>> - C++11 compilers can easy be installed on older distros
>>> - no fork of a C++11 library
>>>
>>> solution for older environments:
>>> - C++98 can be handled on the 0.9.x branch if required
>>> - install a more recent compiler
>>>     - http://www.necessaryandsufficient.net/2014/07/c11-on-centos/
>>>
>>> What do you think?
>>>
>>> all the best!
>>> -roger
>>>
>>>
>>> On 17.03.2015 03:49, Randy Abernethy (JIRA) wrote:
>>>
>>>       [ https://issues.apache.org/jira/browse/THRIFT-3043?page=
>>>> com.atlassian.jira.plugin.system.issuetabpanels:comment-
>>>> tabpanel&focusedCommentId=14364464#comment-14364464 ]
>>>>
>>>> Randy Abernethy commented on THRIFT-3043:
>>>> -----------------------------------------
>>>>
>>>> Hey Jens: looks good, many thanks!
>>>>
>>>> Hey Roger: I agree,  we definitely need a Cpp11 generator and lib ASAP.
>>>> The only thing I am suggesting is that we keep the IDL compiler source
>>>> Cpp98 until Cpp11 is ubiquitous. My hope is that we can fork the Cpp98
>>>> lib
>>>> to create a Cpp11 lib and fork the Cpp98 generator to create a Cpp11
>>>> generator (which would be written in Cpp98). This way folks can use
>>>> Cpp11
>>>> or Cpp98 in their user code. I think this was the plan arrived at on
>>>> some
>>>> other threads. The THeader pull from DJW (https://github.com/apache/
>>>> thrift/pull/357.patch) is all lib so should apply fine to a Cpp11 lib
>>>> fork.
>>>>
>>>> The IDL compiler is pretty simple and has no bearing on user code. The
>>>> path of least resistance there seems to be to keep the source for the
>>>> IDL
>>>> compiler in Cpp98. That way it will compile under Cpp11 or Cpp98. Win
>>>> win.
>>>> Rewriting the compiler in Cpp11 (or Java or Go) does not seem like a
>>>> good
>>>> use of our time and we have precious little of it (as you pointed out on
>>>> the THeader issue). Most of the Cpp98 breaking patches are due to
>>>> unsupported variable initialization and the like, seems silly to cut
>>>> off a
>>>> large chunk of compatibility we already have in place for trivial stuff
>>>> like that.
>>>>
>>>>   go compiler generator uses non C++98 code
>>>>
>>>>> -----------------------------------------
>>>>>
>>>>>                  Key: THRIFT-3043
>>>>>                  URL: https://issues.apache.org/
>>>>> jira/browse/THRIFT-3043
>>>>>              Project: Thrift
>>>>>           Issue Type: Bug
>>>>>           Components: Go - Compiler
>>>>>     Affects Versions: 0.9.3
>>>>>             Reporter: Randy Abernethy
>>>>>             Assignee: Jens Geyer
>>>>>             Priority: Blocker
>>>>>              Fix For: 0.9.3
>>>>>
>>>>>          Attachments: THRIFT-3043-go-compiler-
>>>>> generator-uses-non-C-98-code.patch
>>>>>
>>>>>
>>>>> go compiler generator uses non C++98 code causing builds to fail in
>>>>> Centos 6 and other environments.
>>>>> ==> default: src/generate/t_go_generator.cc:415: error: in C++98
>>>>> ���commonInitialisms��� must be initialized by constructor, not by
>>>>> ���{...}���
>>>>> ==> default: src/generate/t_go_generator.cc:415: error: deducing from
>>>>> brace-enclosed initializer list requires #include <initializer_list>
>>>>> ==> default: src/generate/t_go_generator.cc:415: error: deducing from
>>>>> brace-enclosed initializer list requires #include <initializer_list>
>>>>> ==> default: src/generate/t_go_generator.cc:415: warning: extended
>>>>> initializer lists only available with -std=c++0x or -std=gnu++0x
>>>>> ==> default: src/generate/t_go_generator.cc:415: error: no matching
>>>>> function for call to ���std::set<std::basic_string<char,
>>>>> std::char_traits<char>, s
>>>>> td::allocator<char> >, std::less<std::basic_string<char,
>>>>> std::char_traits<char>, std::allocator<char> > >,
>>>>> std::allocator<std::basic_string<char,
>>>>> std:
>>>>> :char_traits<char>, std::allocator<char> > > >::set(<brace-enclosed
>>>>> initializer list>)���
>>>>> ==> default: /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../
>>>>> include/c++/4.4.7/bits/stl_set.h:188: note: candidates are:
>>>>> std::set<_Key, _Compare, _
>>>>> Alloc>::set(const std::set<_Key, _Compare, _Alloc>&) [with _Key =
>>>>> std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
>>>>> _Compare = s
>>>>> td::less<std::basic_string<char, std::char_traits<char>,
>>>>> std::allocator<char> > >, _Alloc = std::allocator<std::basic_
>>>>> string<char,
>>>>> std::char_traits<ch
>>>>> ar>, std::allocator<char> > >]
>>>>> ==> default: /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../
>>>>> include/c++/4.4.7/bits/stl_set.h:136: note:
>>>>>   std::set<_Key, _Compare, _
>>>>> Alloc>::set() [with _Key = std::basic_string<char,
>>>>> std::char_traits<char>, std::allocator<char> >, _Compare =
>>>>> std::less<std::basic_string<char, std::c
>>>>> har_traits<char>, std::allocator<char> > >, _Alloc =
>>>>> std::allocator<std::basic_string<char, std::char_traits<char>,
>>>>> std::allocator<char> > >]
>>>>> ==> default: make[3]: *** [thrift-t_go_generator.o] Error 1
>>>>> ==> default: make[3]: Leaving directory `/thrift/compiler/cpp'
>>>>> ==> default: make[2]: *** [all] Error 2
>>>>>
>>>>>
>>>>
>>>> --
>>>> This message was sent by Atlassian JIRA
>>>> (v6.3.4#6332)
>>>>
>>>>
>>>>
>

Reply via email to